查看读写
iostat -xm 1, 一般看util百分比
查看读写高的进程
iotop -P
查看内存不足时,系统kill进程的日志
grep -C 30 "Out of memory" /var/log/messages
vmstat 查看内存情况
> vmstat | column -t
column -t是为了表头和数据列对齐,便于查看
表头字段说明
Procs(进程):
r: 运行队列中进程数量
b: 等待IO的进程数量
Memory(内存):
swpd: 使用虚拟内存大小
free: 可用内存大小
buff: 用作缓冲的内存大小
cache: 用作缓存的内存大小
Swap:
si: 每秒从交换区写到内存的大小
so: 每秒写入交换区的内存大小
IO:(现在的Linux版本块的大小为1024bytes)
bi: 每秒读取的块数
bo: 每秒写入的块数
系统:
in: 每秒中断数,包括时钟中断。
cs: 每秒上下文切换数。
CPU(以百分比表示):
us: 用户进程执行时间(user time)
sy: 系统进程执行时间(system time)
id: 空闲时间(包括IO等待时间),中央处理器的空闲时间 。以百分比表示。
wa: 等待IO时间
备注:如果 r经常大于 4 ,且id经常少于40,表示cpu的负荷很重。如果pi,po 长期不等于0,表示内存不足。如果disk 经常不等于0, 且在 b中的队列 大于3, 表示 io性能不好。Linux在具有高稳定性、可靠性的同时,具有很好的可伸缩性和扩展性,能够针对不同的应用和硬件环境调整,优化出满足当前应用需要的最佳性能。因此企业在维护Linux系统、进行系统调优时,了解系统性能分析工具是至关重要的。
JVM 垃圾回收
jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]
jstat –options
-class # 类加载情况的统计
-compiler # HotSpot中即时编译器编译情况的统计
-gc
-gccapacity # 新生代、老年代以及永久代的存储容量情况
-gccause
-gcmetacapacity # 元数据区的容量
-gcnew # 新生代垃圾回收信息
-gcnewcapacity # 新生代的存储容量
-gcold # 老年代垃圾回收信息
-gcoldcapacity # 老年代的存储容量
-gcutil # 实时查看GC信息
-printcompilation # HotSpot编译方法的统计
jstat -gcutil -h10 77545 5000
S0: Heap上的Survivor Space 0区已使用空间的百分比
S1: Heap上的Survivor Space 1区已使用空间的百分比
E: Heap上的Eden Space区已使用空间的百分比
O: Heap上的Old Space区已使用空间的百分比
M: Meta Space(元数据区)已使用空间的百分比
YGC: 从应用程序启动到采样时发生Young GC的次数
YGCT: 从应用程序启动到采样时Young GC所用的时间(单位: 秒)
FGC: 从应用程序启动到采样时发生Full GC的次数
FGCT: 从应用程序启动到采样时Full GC所用的时间(单位: 秒)
GCT: 从应用程序启动到采样时用于垃圾回收的总时间(单位: 秒)