实战java虚拟机
显示系统整体资源使用情况——top命令
linux公社-top详解
top命令是linux下常用的性能工具,它能够实时的显示系统中各个进程的资源占用情况。
top - 23:30:07 up 14 min, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 91 total, 2 running, 89 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.3%sy, 0.0%ni, 99.0%id, 0.3%wa, 0.0%hi, 0.3%si, 0.0%st
Mem: 1012352k total, 214656k used, 797696k free, 17092k buffers
Swap: 4128748k total, 0k used, 4128748k free, 85228k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2069 dmtsai 20 0 98.0m 1824 844 S 0.3 0.2 0:00.48 sshd
2169 dmtsai 20 0 15036 1208 944 R 0.3 0.1 0:00.19 top
1 root 20 0 19356 1540 1228 S 0.0 0.2 0:01.50 init
top命令输出分为两个部分:前半部分是系统统计信息,后半部分是进程信息。
top - 23:30:07 up 14 min, 1 user, load average: 0.00, 0.00, 0.00
//23:30:07 系统当前时间
//up 14 min 系统运行时间,未重启的时间,时间越长系统越稳定。 格式:up xx days, HH:MM
//1 user 系统用户数
//load average 系统平均负载,即任务队列的平均长度。 三个值表示最近1,5,15分钟的系统平均负载
Tasks: 91 total, 1 running, 90 sleeping, 0 stopped, 0 zombie
//进程总数 正在运行进程数 睡眠进程数 停止进程数 僵尸进程数
Cpu(s): 0.0%us, 0.3%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
//us (user)用户空间CPU占用率
//sy (system)内核空间CPU占用率
//ni (nice)用户进程空间改变过优先级的进程CPU的占用率
//id (idle)空间CPU占用率
//wa (iowait)等待输入输出的CPU时间百分比
//hi CPU服务于硬件中断所耗费的时间总额
//si CPU服务于软件中断所耗费的时间总额
//st Steal time 虚拟机被hypervisor偷去的CPU时间
Mem: 1012352k total, 214640k used, 797712k free, 17148k buffers
//总内存 - 使用内存 - 空闲内存 - 用作内核缓存的内存量
Swap: 4128748k total, 0k used, 4128748k free, 85232k cached
//交换区总量 - 使用的交换区总量 - 空闲交换区 - 缓冲的交换区总量
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
7 root 20 0 0 0 0 S 0.3 0.0 0:00.91 events/0
// - A: PID = (Process Id) 进程Id;
// - E: USER = (User Name) 进程所有者的用户名;
// - H: PR = (Priority) 优先级
// - I: NI = (Nice value) nice值。负值表示高优先级,正值表示低优先级
// - Q: RES = (Resident size (kb)) 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
// - T: SHR = (Shared Mem size (kb)) 共享内存大小,单位kb
// - W: S = (Process Status) 进程状态。D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程
// - K: %CPU = (CPU usage) 上次更新到现在的CPU时间占用百分比
// - N: %MEM = (Memory usage (RES)) 进程使用的物理内存百分比
// - M: TIME+ = (CPU Time, hundredths) 进程使用的CPU时间总计,单位1/100秒
// - X: COMMAND = (Command name/line) 命令名/命令行
监控内存和CPU——vmstat命令
linux命令大全
vmstat可以统计CPU,内存使用情况、swap使用情况等。vmstat可以指定周期和次数:
内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响,磁盘IO和CPU资源都会被消耗。
当看到空闲内存(free)很少的或接近于0时,就认为内存不够用了,这个是不正确的。不能光看这一点,还要结合si和so, 如果free很少,但是si和so也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的。
** 监控IO使用——iostat命令**
iostat命令被用于监视系统输入输出设备和CPU的使用情况。
iostat默认单位为block,如果想使用KB单位则使用命令:iostat -k
其他命令
free -m
df -h
多功能诊断器——pidstat工具
引用pidstat详解
pidstat的强大之处在于,它不仅可以监视进程的性能情况,也可以监视线程的性能情况。
可以用多种命令来获取java的进程id:如ps -ef|grep 'java'
;
然后使用pidlist,查看某一个进程的CUP使用情况
[dmtsai@study ~]$ pidstat -p 2812 -u 1 10
//-p 2812 : 监控2812进程
//-u 1 10 : -u表示监控cpu, 监控周期1秒,监控10次 ; //-r 监控内存 , -d:监控io