内存排查:
free -g 查看机器的剩余内存
ps -aux | sort -rnk 4 | head -8
docker stats 查看docker进程内存情况,是否有接近或者超出限定内存值的情况
docker stats $(docker ps --format
'{{.Names}}'
)
docker stats --format
"table {{.Name}}\t{{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}"
1. redis内存排查
redis-cli -p 6379 -a redis密码 -n 5 --bigkeys #-n 5 是db5
找到了bigkey后,查看bigkey的具体内存占用情况
redis-cli -p 6379 -a 密码
memory usage bigkey
这样就可以根据redis bigkey的情况分析业务进行进一步的优化了。
CPU排查:
cpu load值是正在运行和就绪等待状态线程数之和。load越大,说明线程竞争时间片越激烈,线程等待队列越长。常用服务器16核,如果load为40,说明16个线程正在执行,24个线程等待时间片
nproc 查看系统核数
top #查看当前系统的cpu load,比如load高达60,就继续找出当前系统CPU使用量较高的进程
ps -aux | sort -rnk 3 | head -8 提示:rnk 3:cpu 4:内存 ps aux --sort -%cpu | less -%CPU 降序,也可以按内存排序%men
docker stats 也可以查看cpu的高峰
磁盘排查:
df -h
du -h
磁盘测速:dd 命令可用于进行硬盘读写速度测试。
dd if=/dev/zero of=/home/testfile bs=1G count=100 oflag=direct 该命令会创建一个名为testfile的1GB文件,并将零值数据写入该文件。通过使用oflag=direct参数,可以绕过操作系统缓存,直接测试磁盘的写入性能。