Home >Computer Tutorials >Computer Knowledge >Have you used these stress testing tools for Linux systems?
As an operation and maintenance personnel, have you ever encountered this scenario? You need to use tools to test high system CPU or memory usage to trigger alarms, or test the concurrency capabilities of the service through stress testing. As an operation and maintenance engineer, you can also use these commands to reproduce fault scenarios. Then this article can help you master commonly used testing commands and tools.
In some cases, in order to locate and reproduce problems in the project, tools must be used to conduct systematic stress testing to simulate and restore failure scenarios. At this time testing or stress testing tools become particularly important. Next, we will explore the use of these tools according to different scenarios.
tc is a command line tool in Linux used to adjust network parameters. It can be used to simulate various network conditions, including limiting network bandwidth and latency. The main application scenario is to simulate network environments that may occur in the real world during testing to evaluate the system's performance under these conditions. Network speed limiting tools are often used to simulate different network speeds and stabilities so that developers can better understand how their applications will behave in various network environments. By adjusting the parameters of the tc command, low bandwidth, high latency, packet loss, etc. can be simulated, thereby helping developers optimize their applications and ensure that they work under various network conditions
Usage examples
# Set delay 30ms sudo tc qdisc add dev eth0 root netem delay 30ms # Delay within range (10-50ms) sudo tc qdisc add dev eth0 root netem delay 30ms 20ms #Set packet loss 10% sudo tc qdisc add dev eth0 root netem loss 10% #Delete packet loss settings sudo tc qdisc del dev eth0 root netem loss 10% # Display delay settings: sudo tc qdisc show sudo tc qdisc show dev eth0 # Modify delay: sudo tc qdisc change dev eth0 root netem delay 40ms #Randomly generate 1% duplicate data packets sudo tc qdisc add dev eth0 root netem duplicate 1% #Set packet reordering sudo tc qdisc change dev eth0 root netem delay 10ms reorder 25% 50% # Delete delay sudo tc qdisc del dev eth0 root netem delay 40ms
Actual measurement results, we set the host packet loss delay to 40ms, the delay before modification is as follows
Set delay 40ms
[root@knode1 ~]# sudo tc qdisc add dev ens33 root netem delay 40ms [root@knode1 ~]# sudo tc qdisc show dev ens33 qdisc netem 8002: root refcnt 2 limit 1000 delay 40.0ms
Ping test again, the effect is still very obvious, it is really easy to use, for more usage, friends, please study it yourself
stress is a stress testing tool under Linux that can simulate high load conditions on the CPU and memory to test the stability of the system.
CPU/memory/disk testing tools are usually used to evaluate the stability of the system under high load conditions and detect the performance limits of the system. In addition, when performing alarm testing, the stress tool can be used to simulate the system's performance under stress and help evaluate the system's reliability and responsiveness. Through these tools, you can have a more comprehensive understanding of the system's performance under different load conditions, so that you can take corresponding optimization measures when necessary to ensure that the system is stable and reliable in actual operation.
Tool installation
sudo apt-get install stress #ubuntu system yum install stress#Centos system
Then test the CPU and memory:
Test CPU, continuously run 4 processes
# stress --io 2 --cpu 4 --vm 2 --vm-bytes 80M --timeout 1440m --cpu N: Spawn N worker processes to impose CPU load. # stress --cpu 8 creates 8 processes, each trying to take 100% of the CPU time. --io N: Spawn N worker processes to perform I/O operations and increase I/O load. # stress --io 4 will create 4 I/O generation processes. --vm N: # Spawn N worker processes to allocate memory and write random data regularly. Each process is allocated 256MB of memory by default. --vm-bytes B: #Specify the amount of memory allocated by each --vm worker process. stress --vm 2 --vm-bytes 128M will spawn 2 worker processes, each allocated 128MB of memory. --hdd N: # Spawn N worker processes to perform disk I/O operations. stress --hdd 2 creates 2 disk I/O generation processes. --hdd-bytes B: # Specify the amount of data written to disk by each --hdd worker process. stress --hdd 1 --hdd-bytes 1G will create a worker process to write 1GB of data. --timeout T: # Specify the time for stress to run. T is the time, which can be seconds (default), minutes (add m), or hours (add h). stress --cpu 4 --timeout 30s will stop the CPU load test after 30 seconds # Display detailed information, including the status of the spawned worker process. --verbose:
Experiment: Stress test 4 CPUs, duration 180s
stress --cpu 4 --timeout 180s
Test memory, allocate 1GB memory
stress --vm 2 --vm-bytes 20G --timeout 360s --vm 2: means to start 2 virtual memory pressure worker threads. --vm-bytes 20G: The virtual memory size used by each worker thread is 20GB. --timeout 360s: Set the stress test duration to 360 seconds (6 minutes)
dd is a command line tool under Linux, used to copy files and convert data. Through it, we can test the read and write speed of the hard disk.
Usage scenarios: Hard disk speed testing tools are often used to evaluate disk performance, select the most suitable storage solution, and detect whether there are performance bottlenecks on the disk.
To test the read speed and write speed, you can use different parameters of the dd command. For example, to test the reading speed, you can use the if parameter to read data from a file, and to test the writing speed, you can use the of parameter to write data to a file.
Test writing speed:
dd if=/dev/zero of=/data/test bs=4k count=100k
This will write zero data to the /data/test file to test the writing speed
dd if=/data/test of=/dev/null bs=4k
This will read the data from the /data/test file and discard it, thus testing the read speed.
Note: You can also use fio to measure disk speed
ab is a small tool that comes with Apache, used to test the performance of HTTP servers. Usage scenarios: Traffic access stress testing tools are often used to evaluate the performance of web servers and detect the performance of the system under concurrent access.
ab tool installation
sudo apt-get install apache2-utils #ubuntu system sudo yum install httpd-tools #Centos system
Number of concurrent connections to the test website
ab -c 10 -n 100 https://example.com/
This will create 10 concurrent connections, each performing 100 requests.
Test the request speed of the website
ab -n 1000 -c 100 https://example.com/
This will create 100 concurrent connections and execute a total of 1,000 requests. At this time, you can observe the CPU and memory through monitoring to initially evaluate the concurrent carrying capacity of the platform.
The above is the detailed content of Have you used these stress testing tools for Linux systems?. For more information, please follow other related articles on the PHP Chinese website!