top的使用方法top命令主要用于分析linux服务器当前的实时CPU和内存消耗情况,以及进程的运行情况统计 。
命令使用:top ,具体top命令的使用方法和以下截图的各个信息的含义,可通过man top命令来查看 。
其中比较常用的是:按1显示各个核的统计,使用-p参数指定所要监控的进程号 。
![top命令详解:CPU,内存,进程信息统计](http://img.jiangsulong.com/220404/1151213292-0.jpg)
文章插图
从上到下分析:
系统整体负载统计第一行:top - 11:32:29 up 109 days, 20:46, 1 user, load average: 0.24, 0.36, 0.44
11:32:29:当前服务器时间
up 109 days:服务器运行了多久
1 user:当前的登录用户数量
load average: 0.24, 0.36, 0.44系统1分钟,5分钟,15分钟的负载统计,这个数字在单核和多核之间是存在差别的,
(1)如果是单核,则值在0.0~1.0之间表示正常,一般不要超过0.7,多核类似 。
(2)如果是多核,则值在0.0~CPU核心数表示正常,如2核是0到2,4核是0到4 。多核参照单核的标准的话,是:数值 / CPU核数,在0.00-1.00之间正常 。当使用这个数值除以CPU核数,即:数值 / CPU核数,之后,如果大于5则表示系统负载太高 。
CPU的核心数查看:
查看物理CPU的个数#cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc –l查看逻辑CPU的个数#cat /proc/cpuinfo |grep "processor"|wc –l查看CPU是几核#cat /proc/cpuinfo |grep "cores"|uniq查看CPU的主频#cat /proc/cpuinfo |grep MHz|uniq直接获得CPU核心数 (该命令即可全部算出多少核)#grep 'model name' /proc/cpuinfo | wc -l第二行:Tasks: 113 total, 2 running, 111 sleeping, 0 stopped, 0 zombie
113 total:当前系统一共有113个进程
2 running:2个进程正在运行
111 sleeping:111个进程在休眠
0 stopped:停止进程的个数
0 zombie:僵尸进程的个数
CPU的各个核统计第三、四行:两个CPU核的统计信息
Cpu0 : 27.2%us, 16.4%sy, 0.0%ni, 46.0%id, 0.0%wa, 0.0%hi, 3.7%si, 6.7%st
Cpu1 : 20.2%us, 12.8%sy, 0.0%ni, 55.9%id, 0.0%wa, 0.0%hi, 3.7%si, 7.4%st
- us:用户空间进程所用CPU占比
- sy:系统空间进程所用CPU占比
- ni:调整了进程优先级的进程所用CPU占比
- id:空闲CPU占比
- wa:等待输入输出的进程所用CPU占比
- hi:硬中断所用CPU占比si软中断所用CPU占比
- total:物理内存总量
- used:已使用的物理内存量
- free:空闲的物理内存量
- buffers:用作内核缓存的内存量,即内核页缓存,操作系统尽可能地将从磁盘读出的内容或者要写到磁盘的内容通过页缓存来进行缓冲,在规定的时间或者当缓存到达一定量时,再刷到磁盘,减少磁盘的读写操作,提高系统性能 。
- total:交换分区总大小,即分了多少磁盘用作交换分区
- used:已使用的交换分区总量
- free:空闲的交换分区量
- cached:缓冲的交换分区使用量,即内存的内容可以交换到交换分区,然后再从交换分区加载会内存,加载回之后,交换分区对应的内容不删掉,而是缓冲起来,故之后内存内容再交换出来时,如果该内容没有修改过,则不需要再对交换分区进行写出,减少数据读写量 。当交换分区不够时,则可以删除该缓冲的内容来腾出空间 。
进程统计 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND8960 root 20 0 4437m 1.2g 5888 S 56.6 20.8 46006:20 JAVA 26114 root 20 0 4709m 2.3g 8400 S 26.4 40.0 2379:41 java 15076 root 20 0 2790m 110m 2332 S 4.5 1.9 4633:09 java
- PID:进程ID
- USER:进程的owner,即是在以该用户登录的身份时启动的 。
- PR NI:进程优先级,其中PR为整数,NI为负数,绝对值越大,进程优先级越高 。
- VIRT:进程的虚拟内存大小,VIRT = RES + SHR,即进程申请了多少内存,但是不一定使用了这么多,具体使用了多少物理内存是RES显示的 。
- RES:进程所用的实际物理内存大小,即进程实际使用了多少物理内存,包含进程自身的内存和与其他进程共享的内存,但不包括swap out的 。在分析进程是否占用太多内存时,关注这个值 。
- SHR:进程所用的共享内存大小,如共享库,如果需要知道该进程自身独立使用的内存大小,则使用RES-SHR 。当共享内存swap out到交换分区之后,则SHR的值会减小 。
- 都匀毛尖冲泡方法详解
- |多巴盐在黑坑钓鱼时如何使用?多巴盐在黑坑钓鱼的用法用量详解
- 专业详解南山寿眉茶冲泡技巧
- 领导下达了错误的命令,该执行吗?成熟的职场人,会看到3点
- 软件测试流程及方法详解
- 详解阿里P7架构师是怎么在Spring中实现事务暂停
- 招财鱼风水命理和摆放详解
- 华为P30pro偏光分离+贴合技术详解
- 慢品功夫茶 功夫茶茶艺8大步骤详解
- Linux中的xargs命令