top命令学习

top是Linux下的性能分析工具,用于实时显示系统各进程的资源占用情况,类似于windows的资源管理器。

1. 前5行是整体的统计信息区:
第一行,任务队列信息
top - 14:13:29 up 14 days, 23:41,  3 users,  load average: 0.00, 0.03, 0.05
1)14:13:29 --> 系统当前时间
2)up 14 days, 23:41 --> 系统已经运行了14天23小时41分钟(在这期间没有重启过)
3)3 users --> 当前有3个用户登录
4)load average: 0.00, 0.03, 0.05 --> 分别是1分钟,5分钟,15分钟的负载情况
注:CUP load average数据是每隔5秒钟,检查一次活跃的进程数,然后按特定的算法计算出来的数值。如果用这个数除以CPU的数据量,如果大于5就表示系统在超负荷运转了。

第二行,Tasks — 任务(进程)
Tasks: 108 total,   2 running, 106 sleeping,   0 stopped,   0 zombie
系统一共有108个进程,其中有2个在运行,106个在休眠(sleep),0个在stop, 0个zombie(僵尸)

第三行,cpu状态信息
%Cpu(s):  0.6 us,  0.8 sy,  0.0 ni, 98.5 id,  0.0 wa,  0.1 hi,  0.0 si,  0.0 st

0.6 us --> 用户占用0.6%CPU
0.8 sy --> 内核空间占用0.8%CPU
0.0 ni --> 改变过优先级的进程占用CPU的百分比
98.5 id --> 空闲CPU百分比
0.0 wa --> IO占用CPU百分比
0.1 hi --> 硬中断(Hardware IRQ)占用CPU的百分比
0.0 si --> 软中断(Software Interrupts)占用CPU的百分比

第四行,内存状态
KiB Mem:   8176880 total,  4127568 used,  4049312 free,   180040 buffers
8176880 total -- 物理内存总量 (8G)
4127568 used -- 使用中的内存(4G)
4049312 free -- 空闲的内存(4G)
180040 buffers -- 缓存占得内存(180M)

第五行,swap交换分区信息
KiB Swap:  8388604 total,        0 used,  8388604 free.  3434140 cached Mem
8388604 total -- 交换区总量
0 used -- 使用中的交换区
8388604 free -- 空闲的交换区
3434140 cached -- 缓冲的交换区

注:1. Swap分区在系统的物理内存不够用的时候,把硬盘空间中的一部分空间释放出来,以供当前运行的程序使用。
2. 可用的内存计算方法:第四行的free + 第四行的buffers + 第五行的cached
3. 我们要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了。

第六行,空行

第七行,各进程(任务)的状态监控:
PID: 进程id
USER: 进程所有者
PR: 进程优先级
NI: nice值。负值表示高优先级,正值表示低优先级
VIRT: 进程使用的虚拟内存总量,单位是kb
RES: 进程使用的、未被换出的物理内存大小,单位kb
SHR: 共享内存大小,单位kb
S: 进程状态: D=不可中断的睡眠状态; R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU: 上次更新到现在的CPU时间占用百分比
%MEM: 进程中使用的物理内存百分比
TIME+: 进程使用的CUP时间总计,单位1/100秒
COMMAND: 进程名称

注:1. 多核CPU时,按键盘数字“1”,可监控每个逻辑CPU的状况

=================================

jstack用于打印出给定的java进程id或core file或远程调试服务的java堆栈信息

jstat用于监控JVM, 对“堆”的使用情况实时监控。jstat可以做如下监控:
-- 类的加载、卸载情况
-- 查看新生代、老生代、持久代的容量及使用情况
-- 查看新生代、老生代、持久代的垃圾收集情况,包括垃圾回收的次数及垃圾回收所占用的时间。
-- 查看新生代中Eden区及Survior区中容量及分配情况等


猜你喜欢

转载自doudou-001.iteye.com/blog/2284750
今日推荐