1.uptime 用法:java
注:load average的理想状态是:内核数乘以0.5-0.7缓存
如:4核CPU的服务器,理想负载小于2 表示系统很闲 2-2.8 为理想状态 大于2.8系统比较繁忙服务器
2.TOP 用法:工具
统计信息区前五行为系统总体的统计信息:spa
87.5 id-空闲CPU百分比线程
11166040 free 空闲内存总量3d
3041252 used -使用的物理内存总量orm
2059696 buff/cache -用做内核缓存的内存量对象
可用内存的计算:totalfree=free+buff/cacheblog
3.JPS 用法:
JPS可直接罗列出当前系统中的java进程
top -p 11468 直接查看此进行的相关信息
4.jstat 用法:用于输出java程序内存使用状况,包括新生代、老年代、元数据区容量、垃圾回收状况
上述命令为:输出进程号为11468的内存使用状况(每2000ms输出一次,一共输出5次)
5.jmap 用法:用于输出java程序中内存对象的状况,包括有哪些对象,对象的数量。
jmap -histo 11468
上述命令打印出进程ID为11468的内存状况。但咱们经常使用的方式是将指定进程的内存heap输出到外部文件,再由专门的heap分析工具进行分析,例如mat(Memory Analysis Tool),因此咱们经常使用的命令是:
jmap -dump:live,format=b,file=heap.hprof 11468
6.jstack 查看线程信息
jstack 10765 能够打印出进程堆栈的堆栈信息
找到最耗CPU的进程
执行top -c ,显示进程运行信息列表
键入P (大写p),进程按照CPU使用率排序
注:这里的cpu使用率是全部cpu使用率的总和,能够在输入top命令后,再输入"1"查看各个CPU使用状况,如:
其中有一个cpu使用率一直是100%,这时应该怀疑程序有死循环的状况。
top -Hp 23319 ,显示一个进程的线程运行信息列表
键入P (大写p),线程按照CPU使用率排序
将线程PID转化为16进制
之因此要转化为16进制,是由于堆栈里,线程id是用16进制表示的。
./jstack 23319 |grep 0x5bb6 -C 10 --color
能够看出线程一直运行在某个地方。