TOP命令关键指标
%MEM,在内存中的占用率
%CPU,使用率,如果两核,最大可到200%
TIME+, 占用cpu的总时间/s
SHR,分享内存
RES, 常驻内存,进程当前使用的内存大小,不包括swap out,含共享内存,申请了很多,用了很少,按实际用的展示
VIRT,占用的虚拟内存 VIRT = SWAP + RES,申请了多少就算多少
小技巧
top命令时,按b加亮,f选哪些展示,回车后生效
top时,按1,可看到cpu每个逻辑cpu的状态
top只能看进程,看不到线程,怎么办
监控java线程数:
ps -eLf | grep java | wc -l
监控网络客户连接数:
netstat -n | grep tcp | grep 侦听端口 | wc -l
netstat -n | grep tcp | grep 1601 | wc -l
top -Hp {pid},查看进程中的线程各方面信息,此时控制台的pid就是jstack信息中的nid,只不过变成了16进制
如591835的十六进制为nid=0x907db
(top -H表示show threads)
ps -Lfp pid
查询某个线程的堆栈jstack 21711 | grep 线程id的16进制,如907db
交换分区
交换分区SWAP分区:
linux可以使用文件系统中的一个常规文件或独立分区作为交换空间,相对而言,交换分区会比普通文件要快一些,但是和RAM性能依旧差距很大
优点:
当内存完全填满时提供溢出空间
可以移动很少需要的数据,从高速缓存中
允许休眠
缺点:
交换分区会占用硬盘空间,且它不可动态resize
加剧对硬盘的磨损
对于提升性能,它不是必须的
在物理内存不足时,Swap可以临时存放使用率不高的内存页,把腾出的内存交给更急的应用程序,如果程序有内存溢出的风险,则交换分区很重要,它可以防止内存不够时的系统崩溃
少量使用Swap空间不会影响性能,当RAM不足或内存泄露时,可能导致严重性能问题,频繁使用交换分区还会导致cpu使用很高