暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Centos 中模拟cpu负载高和内存高情况,及其解决方法

信研汇智 2022-08-09
3742

CPU负载高和内存高

情况,及其解决方法

-Centos 中模拟-



模拟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均很大,表示目前系统暂用交换区很大,系统内存严重不足。(当系统内存不足时,系统程序会用到交换分区)


-END-



信息化运维好帮手    

长按识别二维码

关注我们了解更多运维知识



文章转载自信研汇智,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论