Linux书签(02)用linux top命令自行监测和分析服务器CPU、内存、进程等性能
楔子: 学会灵活使用各种或工具或手段来监测自己的项目运行情况无疑是一种自我能力的提高。Linux top 命令也许会有所帮助。
Linux top 命令
Linux top 命令是服务器工程师和运维最常用的工具之一,它所带出来的信息可以有效的观察和监测当前服务器的各项性能,如系统CPU、内存、运行时间、执行的进程等信息,这可以实时有效的发现服务器运载能力或缺陷出在哪里。如内存不够、CPU处理能力不够、IO读写过高等等。就像 Windows 的任务管理器。
[devuser@ping-test8264 logs]$ top
top - 14:36:45 up 12 days, 3:16, 1 user, load average: 0.66, 0.67, 0.63
Tasks: 91 total, 1 running, 89 sleeping, 1 stopped, 0 zombie
Cpu(s): 40.3%us, 0.3%sy, 0.0%ni, 59.4%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 2045940k total, 2027396k used, 18544k free, 87148k buffers
Swap: 1048572k total, 7472k used, 1041100k free, 110292k cachedPID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
28132 ping 20 0 2927m 1.7g 6728 S 81.1 85.5 780:26.52 java
30846 root 20 0 323m 10m 3216 S 0.3 0.5 27:33.91 ops-agent 1 root 20 0 19236 1252 1112 S 0.0 0.1 0:00.37 init 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root RT 0 0 0 0 S 0.0 0.0 0:04.29 migration/0 4 root 20 0 0 0 0 S 0.0 0.0 0:10.99 ksoftirqd/0 5 root RT 0 0 0 0 S 0.0 0.0 0:00.00 stopper/0 6 root RT 0 0 0 0 S 0.0 0.0 0:02.32 watchdog/0 7 root RT 0 0 0 0 S 0.0 0.0 0:04.43 migration/1 8 root RT 0 0 0 0 S 0.0 0.0 0:00.00 stopper/1 9 root 20 0 0 0 0 S 0.0 0.0 0:09.90 ksoftirqd/1 10 root RT 0 0 0 0 S 0.0 0.0 0:02.24 watchdog/1 11 root 20 0 0 0 0 S 0.0 0.0 1:12.45 events/0 12 root 20 0 0 0 0 S 0.0 0.0 1:20.05 events/1 13 root 20 0 0 0 0 S 0.0 0.0 0:00.00 events/0 14 root 20 0 0 0 0 S 0.0 0.0 0:00.00 events/1 15 root 20 0 0 0 0 S 0.0 0.0 0:00.00 events_long/0 16 root 20 0 0 0 0 S 0.0 0.0 0:00.00 events_long/1 17 root 20 0 0 0 0 S 0.0 0.0 0:00.00 events_power_ef 18 root 20 0 0 0 0 S 0.0 0.0 0:00.00 events_power_ef 19 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cgroup 20 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khelper 21 root 20 0 0 0 0 S 0.0 0.0 0:00.00 netns 22 root 20 0 0 0 0 S 0.0 0.0 0:00.00 async/mgr 23 root 20 0 0 0 0 S 0.0 0.0 0:00.00 pm 24 root 20 0 0 0 0 S 0.0 0.0 0:00.00 xenwatch 25 root 20 0 0 0 0 S 0.0 0.0 0:01.69 xenbus 26 root 20 0 0 0 0 S 0.0 0.0 0:05.78 sync_supers 27 root 20 0 0 0 0 S 0.0 0.0 0:00.11 bdi-default 28 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kintegrityd/0 29 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kintegrityd/1 30 root 20 0 0 0 0 S 0.0 0.0 0:06.56 kblockd/0 31 root 20 0 0 0 0 S 0.0 0.0 0:00.90 kblockd/1 32 root 20 0 0 0 0 S 0.0 0.0 0:00.00 ata_aux 33 root 20 0 0 0 0 S 0.0 0.0 0:00.00 ata_sff/0 34 root 20 0 0 0 0 S 0.0 0.0 0:00.00 ata_sff/1 35 root 20 0 0 0 0 S 0.0 0.0 0:00.00 ksuspend_usbd 36 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khubd
信息拆解
命令行:top 命令
[devuser@ping-test8264 logs]$ top
第一行:系统概览
top - 14:36:45 up 12 days, 3:16, 1 user, load average: 0.66, 0.67, 0.63
分别对应显示:系统当前时间 up 系统到目前为止运行的时间,当前登录用户数,以及负载均衡情况:
14:36:45 |
当前时间 |
up 12 days, 3:16 |
系统运行时间,格式为时:分(系统当前已经运行了12天3小时16分钟) |
1 user |
当前登录用户数 |
load average: 0.66, 0.67, 0.63 |
系统负载情况,即任务队列的平均长度。 三个数值分别为 1分钟、5分钟、15分钟 前到现在的平均值 |
注意:load average 数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。
第二行:任务统计
Tasks: 91 total, 1 running, 89 sleeping, 1 stopped, 0 zombie
分别对应显示:当前任务总数,前正在运行的任务数,当前正在休眠的任务数,当前已经停止的任务数,僵尸进程数
91 total |
当前任务(进程)总数 |
1 running |
当前正在运行的任务(进程)数 |
89 sleeping |
当前正在休眠的任务(进程)数 |
1 stopped |
当前已经停止的任务(进程)数 |
0 zombie |
当前僵尸任务(进程)数 |
第三行:CPU状态
Cpu(s): 40.3%us, 0.3%sy, 0.0%ni, 59.4%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
分别对应显示:
40.3%us |
用户空间占用CPU百分比 |
0.3%sy |
内核空间占用CPU百分比 |
0.0%ni |
用户进程空间内改变过优先级的进程占用CPU百分比 |
59.4%id |
空闲CPU百分比 |
0.0%wa |
等待输入输出的CPU时间百分比 |
0.0%hi | Hardware IRQ 硬中断 占用CPU的百分比 |
0.0%si | Software 软中断 占用CPU的百分比 |
0.0%st | 被 hypervisor 偷去的时间(虚拟机占用时间比例) |
第四行:内存状态
Mem: 2045940k total, 2027396k used, 18544k free, 87148k buffers
分别对应显示:物理内存总量 2G,使用中的内存总量 2G,空闲内存总量 18M,缓冲内存量 85M
2045940k total |
物理内存总量 |
2027396k used |
使用的物理内存总量 |
18544k free |
空闲内存总量 |
87148k buffers |
用作内核缓存的内存量 |
注:使用中的内存总量(used)指的是现在系统内核控制的内存数,空闲内存总量(free)是内核还未纳入其管控范围的数量。纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交还到 free 中去,因此在 linux 上 free 内存会越来越少,但不用为此担心。
第五行:交换分区状态
Swap: 1048572k total, 7472k used, 1041100k free, 110292k cached
分别对应显示:交换区总量 1G,使用的交换区总量 7M,空闲交换区总量 1G,缓冲的交换区总量 0.1G
1048572k total |
交换区总量 |
7472k used |
使用的交换区总量 |
1041100k free |
空闲交换区总量 |
110292k cached |
缓冲的交换区总量。 内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖, 该数值即为这些内容已存在于内存中的交换区的大小。相应的内存再次被换出时可不必再对交换区写入。 |
注:对于内存监控,在 top 里我们要时刻监控第五行 swap 交换分区的 used,如果这个数值在不断的变化,说明内核在不断进行内存和 swap 的数据交换,这是真正的内存不够用了。
第六行:空行
第七行:各进程的监控表头
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
对应表头信息如下:
PID | 进程唯一ID标识 |
USER | 启动此进程的用户 |
PR | 进程优先级 |
NI | 进程nice值(与PR相加为0,NI值越小进程优先级越高) |
VIRT | 进程使用的虚拟内存总量,单位kb |
RES | 进程使用的,未被换出的内存大小,单位kb |
SHR | 共享内存大小,单位kb |
S | 进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程) |
%CPU | 进程占用CPU资源比例 |
%MEM | 进程占用内存大小比例 |
TIME+ | 进程占用系统内核时间,单位1/100秒 |
COMMAND | 进程名称(命令名/命令行) |
脱坑技巧
1)在使用 top 命令过程中,有时希望界面停止滚动来捕捉一些特定的进程信息,这时可以使用 ctrl+s 冻结屏幕,在得到我们需要的信息后按 ctrl+q 解除屏幕冻结。
2)监控 Java 线程数(如果不加后面的 wc -l 来只显示当前 Java 线程个数,会很容易被刷屏):
ps -eLf | grep java | wc -l
3)命令 pmap,输出某个进程内存的状况,可以用来分析线程堆栈:
pmap PID
Linux书签(02)用linux top命令自行监测和分析服务器CPU、内存、进程等性能相关推荐
- Linux/Unix下的任务管理器-top命令
Linux/Unix下的任务管理器-top命令 Posted on 2012-07-11 09:14 fengyv 阅读(15453) 评论(1) 编辑 收藏 Windows下的任务管理器虽然不好用( ...
- linux 下 任务管理器,Linux/Unix下的任务管理器-top命令
Windows下的任务管理器虽然不好用(个人更喜欢Process Explorer些),但也算方便,可以方便的查看进程,CPU,内存...也可以很容易的结束进程 没有图形化界面下的Linux,也有命令 ...
- 14.Linux rpm,brew软件安装包命令,zsh和bash,内置命令和外部命令,ps命令,top命令解析,swp,为什么cpu利用率很低,负载却很高?
解释一下rpm, opt,opt-get, brew,brewhome rpm,apt,apt-get,brew,和homebrew都是与软件包管理有关的术语.它们分别用于不同的操作系统. rpm是一 ...
- Linux(Ubuntu)之top命令
top命令可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具.它对于所有正在运行的进程和系统载荷提供不断更新的概览信息,包括系统负载.CPU利用分布情况.内存使 ...
- Linux基础(1)---top命令
用 30 个实例完全解读 TOP 命令 原文:http://linoxide.com/linux-command/linux-top-command-examples-screenshots/ Lin ...
- Linux 史上最全top命令及参数详解
总目录 **一.top简介** **二.top命令** 1.top -d:number代表秒数 默认5秒 刷新一次 2.top -b:以批次的方式执行top 3.top -b: '批量模式',用来将输 ...
- python glances来监控linux服务器CPU 内存 IO使用
什么是 Glances? Glances 是一个由 Python 编写,使用 psutil 库来从系统抓取信息的基于 curses 开发的跨平台命令行系统监视工具. 通过 Glances,我们可以监视 ...
- linux内存跑分,RaspberryPi 4B 4G版本跑分测|CPU|内存|IO|网络|性能全面测试
前言 拿到手最新的RaspberryPi 4B 4G版本,新版本的4修复了之前的硬件bug. 直接官方安装软件刷上了最新版本的Linux raspberrypi 4.19.97,MicroSD卡选用的 ...
- Linux运维02:top命令详解
系列专题:Linux运维入门教程 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器. 下面详细介绍它的使用方法.t ...
最新文章
- 区区几行Python代码,一分钟搞定一天工作量
- ItClust:利用迁移学习解决scRNA-seq中的细胞聚类问题
- 20 年前毁誉参半的网游《传奇》,背后是怎样的故事?
- 过年回家应对七大姑八大姨,程序猿绝了!
- 你连原理都还没弄明白?java的基本单位
- NoSQL生态系统——事务机制,行锁,LSM,缓存多次写操作,RWN
- python getopts_linux bash shell 中getopts 命令 和 python 中 getopt 函数的比较总结
- 剖析数据库中重要而又常被曲解的概念
- 如何解决Maven依赖本地仓库eclipse报错的问题
- 模块之re模块 —— 正则
- JPA EntityManagers,事务及其周围的一切
- Id vs Instancetype
- android 监听软键盘在页面的展开和隐藏
- python -- 计算 平方、乘方、平方根_python如何求平方
- 基于移动通信数据的城市可视分析研究
- 【HTML】HTML自定义网页头部小图标
- Java基础知识(十) 多线程
- 日本泡沫经济时期的普通百姓
- 使用opencv的viz模块显示3d点云
- 论文参考文献中括号+数字转上标