LINUX系列-服务器cpu和内存篇

一 系统内存过高排查方法

 1、使用top命令查看当前服务器上所有进行使用内存情况,可以使用shift+m 按键,将进程按照内存使用情况排序。如若某个进程占用过多内存,使用kill <pid> 终止该进程。
 2、检查是否有内存泄漏情况。   
ps aux --sort=-%mem 
该命令可按照内存使用率高低进行排序,如果某个进程内存占用持续增加,可能存在内存泄漏情况。
 3、检查是否有未关闭的程序或进程。
lsof | grep deleted 
有些程序在关闭时未完全释放占用的内存,可能会导致内存过高的情况。
 4、如果以上排查都没有问题,可以考虑升级系统内核和驱动程序。有时,系统内核和驱动程序版本不兼容可能也会导致内存占用率过高。

二 系统cpu过高排查方法

 1、使用top命令,使用shift+p 按键,按照cpu排序,找到cpu使用率过高的进程pid
 2、使用top -H -p <pid>,找到进程中消耗资源的线程id
或者使用    ps -mp <pid> -o THREAD,tid,time | sort -rn
 3、将线程id转化为16进制(字母要小写,bc为linux的计算器命令)
echo 'obase=16;[线程id]' | bc   或者printf "%x\n" [线程id]
 4、查看线程信息状态
jstack [进程id] | grep -A 10 [线程id的16进制]
posted @ 2023-05-25 10:46  laity_guan  阅读(71)  评论(0编辑  收藏  举报