Centos 中模拟cpu负载高和内存高情况,及其解决方法
2022-08-09 17:39:02

· 模拟cpu暂用测试

1.模拟centos系统中当cpu负载过高的情况,如下图中:

ab7917486c114dedbb6c8376841b8303_noop

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= 要写多少个块。

68d486b76e3f4e80a83c399750961094_noop

此时的swap 中的si和so均很大,表示目前系统暂用交换区和大,系统内存严重不足。(当系统内存不足时,系统程序会用到交换分区)

b265fc992d414b9d847544b7775eb856_noop

嫌麻烦不想填写表单?点击立即扫码联系销售人员。
感兴趣的产品:
*试用单位:
*所在省份:
*单位地址:
*联系人:
*联系电话:
*您主要关注哪些方面:
您从何处了解到诸葛运帷:

免费试用 ×
微信扫码,立即联系销售经理,或电话、短信致电均可。或返回填写表单
刘经理:13811576433
赵经理:18611012818
立即咨询 ×
微信扫码,立即联系销售经理进行咨询,或电话、短信致电均可。
刘经理:13811576433
赵经理:18611012818