Cloud Products and services Sotfware & Developers & DevOps Tools & How-Tos

Performance Test of NiHao Cloud with curl

Performance Test of NiHao Cloud using curl

In today’s dynamic world, time is the most critical aspect for any business person. Whether it’s deciding to trade off or launching a new product, reaching the customers within the least possible time filter you from the majority crowd.

Updated on: June 22, 2021

How much your customers wait for your website to load? 5 -seconds? 10 seconds? Probably not more than that! And in the end, the client leaves the website heavy-heartedly and downvotes the user experience. So, good to be on the safer side and check the latency tests beforehand.  In this article will talk about curl and how to use it for performance testing. This is a very popular open-source tool with it’s first release about about 23 years ago. First we will start by introducing some of the flag features of the tool. By the way these features are used that are used for many purposes like testing, troubleshooting, and much more. Finally In this article we will show you how to use if for a Performance Test of NiHao Cloud.

We’ve taken curl (a powerful command-line tool to transfers data from or to a server) and using Linux based operating system. Curl is a command-line utility for transferring data from or to a server designed to work without user interactions. Curl supports various options allowing the user to resume the transfer, measure and limit the bandwidth, proxy support, user authentication, and much more. It is simple, scriptable, scalable, flexible yet powerful. Curl is generally pre-installed in Linux-based systems.

site performance testing cover image
site performance test
Let’s discuss some of the popular options from curl:

-I (–head) — This option fetches the header only. For HTTP-based servers, fetches the header of the document and for file, it displays the file size and last modification time.

-X (–request) — With this option, one can explicitly specify the request method when communicating with HTTP-based servers. The specified method will be applied instead of the default one.

-v (–verbose) — It makes curl verbose during the operation. Very useful in troubleshooting and observing the “behind the scene” process. Further in the command line, output starting with “>” menas header data sent by curl, and “<” means header data received by curl.

-H (–header) — User can include extra header content in the request to the HTTP server. In addition, we may specify any number of customized headers and it will make sure that each added header will be sent with proper markup.

-L (–location) — If the server comes to know that the requested page has been moved to another location, then this option will redo the curl operation with an alternative location. This method won’t intercept the user credentials for authentication to an alternative location if the initial location is not present.

-K (–config) — Use this to specify a file to read arguments and use as input for curl command. It will create an illusion as if the arguments are passed via the command line itself.

-u (–user) — We can pass username and password to use for server authentication. If the username is passed, curl will prompt for the password. One should not pass sensitive information in plain text Pass it via file or follow some security practices.

  The steps would be nearly the same with another os as well. In the demonstration part, we will use time-related variables and test the same with 2 different networks in 2 different region(i.e: India and USA).


Now, here is where we show you how to use curl for the purpose of a Performance Test of NiHao Cloud. Let’s get to it!

  • Create a file which has arguments that curl command takes:
time_namelookup: %{time_namelookup}
time_connect: %{time_connect}
time_pretransfer: %{time_pretransfer}
time_starttransfer: %{time_starttransfer}
time_total: %{time_total}
  • Here, time_namelookup – time, in seconds, it took from the start until the name resolving was completed.
  • time_connect – time, in seconds, it took from the start until the TCP connection to the remote host (or proxy) was completed.
  • time_pretransfer – time, in seconds, it took from the start until the file transfer was just about to begin.
  • time_starttransfer – time, in seconds, it took from the start until the first byte was just about to be transferred.
  • time_total – total time, in seconds, that the full operation lasted.
  • Now use this file and make curl request to the target website:
   Command: curl -w "@curl-format.txt" -o /dev/null -s 

Here, -w @”curl.txt” tells to use the mentioned file. –O option redirects the output to /dev/null and –s suppresses the progress bar. The target website is our Cloud Storage

Result 1: Using the wifi connection:

The results of the performance test below are in the Seconds unit. We measured the results from the Indian region and connected them to the servers in Korea.

Console curl register
Result1: through wifi network
Result 2: Using the Mobile Network
Console register curl output
Result2: through mobile network

Besides, let’s perform the same operation with different geolocation to ensure availability at other dimensions as well. In the example, we’ve taken North Virginia(USA) region. The results are identically the same as with the Indian region.

Result 1: Using the wifi connection:

Through wifi network
Result1: Through WiFi network

Result 2: Using the wifi connection:

Through mobile network
Through mobile network

We tried to show a small demonstration of site latency/speed testing. We at NiHao cloud always try to give the best services to our clients across the globe and results are mirrored above. Stay tuned for such interesting articles and the best services.

Hits: 8

General Topics and tips Sotfware & Developers & DevOps Tools & How-Tos

How to Host WordPress on Linux System?

Updated on: June 8, 2021

This article will show the step-by-step process to host a WordPress site using a Linux-based system. WordPress is a free and open-source content management system (CMS) written in PHP and paired with a MySQL or MariaDB database. Currently, over 35% of the websites on the web are built with WordPress and it is the top amongst all the CMS providers.


Here, we’ve taken the RedHat Linux system running on the AWS cloud. The commands for the installation may change by changing the distro type. We’ve performed the steps manually. However, there are many different approaches to getting access to WordPress and some setup processes are more complex than others.

This tutorial is intended for those who desire to install and administer a WordPress instance on an unmanaged cloud server via the command line backed by AWS managed database provider.

WordPress logo


 Now to ensure a clean installation of WordPress, some SQL, and PHP-based dependencies are required. Also, a web server is required where our front-end will actually run. We’ve taken Apache webserver in this demonstration.

Run below commands to ensure dependencies in the system:

yum module install httpd php mysql
yum install php-mysqlnd
systemctl start httpd
systemctl enable httpd

Here, the latest versions of php, mysql and httpd modules are installed fulfilling all the dependencies, and a package named php-mysqlnd is installed for compatibility. Start the webserver services and batter to make the service permanent.

We’re all set to install WordPress in the system. Install the package file from the online source and extract it in the document root of the webserver. In this case, /var/www/html is the doc root of the apache webserver. The following commands are for reference:

tar -xzf latest.tar.gz
mv wordpress /var/www/html

Here, the wget command is installing the package from the online source and tar command is extracting that package, and the mv command is coping all the files in the document root of the apache webserver. The document root is the directory from where all publicly accessible pages are delivered.

If all of the above steps are successful then we can access the front-end using the publicly accessible domain name or IP address. But it doesn’t stop just after installation. Still, we’ve to perform some more steps. The front-end is ready. Besides, we need a database to persistently store the data.

After initial installation, the output screen will look like this:

Initial installation page

Now pass the database-related arguments as the next step to ensure connectivity between the front and back end of the application. On submit, internally it will communicate with the database and add the details in the local wp-config.php file. Before moving on, lets then create the DB:

AWS RDS Setup:

Let’s do the database part. Here, we’ve taken AWS RDS. It is a very powerful relational database service by AWS and fully managed by the provider. Navigate to AWS console and RDS service. This service provides all major SQL-based database flavors with all version compatibility.

As can be seen, select the database installation type and preferred database flavor. We’ve used MYSQL.

AWS RDS select database type

As the next step, pass the admin user credentials for initial login and administration purposes. Surely not suggested working with root privileges all time. Proceed with the “Least privileges” concept and follow best practices.

Pass admin credentials

Likewise, select the type of RDS server and the required storage amount. The instance type consists of the computing unit configuration of the machine and the storage amount will be the actual persistent storage.

Select type of RDS instance

Lastly, select networking configurations next and create a database. As the database is very critical and needs high availability setup with nearly zero downtime, AWS RDS as a fully managed service ensures all the variables and provides database clusters to the end-user. Henceforth it takes around 10-15 mins to spawn the cluster.

Configure Database:

Our database is ready now. In addition, Let’s create a database and tables inside it for connectivity with WordPress instance.

Mysql –h <endpoint of rds> -u username –p password
create database <database name>
CREATE USER ‘wordpressuser’@’%’ IDENTIFIED WITH mysql_native_password BY ‘password’;
GRANT ALL ON wordpress.* TO ‘wordpressuser’@’%’;

Furthermore, log in to the database instance using the credentials and create a database and a database user using the above commands and exit. The database is up and running and we’re good to go. Straightaway head towards the WordPress homepage and pass the above database details and click begin the installation.

Hence after fulfilling all the steps, we’re now ready to configure the site and make it up and running for the end-user. Eventually, after a clean installation, the wp-admin dashboard will look like the image below:

wp-admin page

This is how one can set up and install WordPress on a Linux system and make the site working. Then explore the CMS portal and add powers to your site by adding customized plugins and themes. Now freely post the content and spread it worldwide.

You can also use our very own Cloud Storage system that you can link from your WP so you do not need big servers. Aside from checking out these two posts. Firstly serving regular Content using our cloud. Later, this link recommended lazy loading for big files. By the way, our very own website Sesame Disk is also built with WordPress😇.

Hits: 10