· 模拟cpu暂用测试
1.模拟centos系统中当cpu负载过高的情况,如下图中:
cat /dev/urandom | gzip -9 | gzip -d | gzip -9 | gzip -d > /dev/null
以上命令是---如果你想要更大的负荷,或者系统有多个核,那么只需要对数据进行压缩和解压就行了。
或简单创建 CPU 负荷,方法是通过压缩随机数据并将结果发送到 /dev/null:
cat /dev/urandom | gzip -9 > /dev/null
2.可以看到此时的cpu负载已经达到2。并且此时我的系统cpu线程数为1,此负载已经超过我的线程数。
3.查看cpu百分比,找到占用cpu较高的进程的PID,看其后面对应的命令,或语句。
查看进程中最占CPU的线程
top -p PID -H (在top中指定PID进程)
printf "%x\n" PID
以上命令可以将找到的pid 转化成16进制输出
4.以上方法,在监控系统中,一般会出现,系统本身性能跟不上,也就是cpu线程数很低,但是系统监控量很大,导致cpu平均负载很高,系统会出现卡顿的情况。此时需要找到占用cpu较高的进程和命令进行分析,并且增加系统性能。
· 内存占用测试
下面命令会减少可用内存的总量。它是通过在内存中创建文件系统然后往里面写文件来实现的。你可以使用任意多的内存,只需哟往里面写入更多的文件就行了。
首先,创建一个挂载点,然后将 ramfs 文件系统挂载上去:
mkdir z
mount -t ramfs ramfs z/
第二步,使用 dd 在该目录下创建文件。这里我们创建了一个 128M 的文件:
dd if=/dev/zero of=z/file bs=1M count=128
bs= 块大小。可以是任何数字后面接上 B(表示字节),K(表示 KB),M( 表示 MB)或者 G(表示 GB)。 count= 要写多少个块。
此时的swap 中的si和so均很大,表示目前系统暂用交换区和大,系统内存严重不足。(当系统内存不足时,系统程序会用到交换分区)