最近发现一个很奇怪的现象,白天系统业务压力较大的时候服务器cpu,内存使用率正常。晚上业务量小,没人使用系统
的时候cpu正常,内存暴涨的70%以上。
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器
内容解释:
PID:进程的ID
USER:进程所有者
PR:进程的优先级别,越小越优先被执行
NInice:值
VIRT:进程占用的虚拟内存
RES:进程占用的物理内存
SHR:进程使用的共享内存
S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
%CPU:进程占用CPU的使用率
%MEM:进程使用的物理内存和总内存的百分比
TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
COMMAND:进程启动命令名称
常用的命令:
P:按%CPU使用率排行
T:按MITE+排行
M:按%MEM排行
1>使用top命令查看 如图显示:
2>使用命令 printf "%x\n" pid 可以对应进程id的16进制id 如图:
3>使用命令jstack pid|grep 16进制id -A 90 可以查看到具体的代码块:
这样根据异常信息可以定位 具体问题 ,应该是这些thread正常消耗内存
唉。。。苦逼的解决中。。。后续更新解决方案。