设为首页 收藏本站
查看: 1850|回复: 0

[经验分享] linux系统性能监控工具--htop与dstat介绍

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-6-11 08:42:21 | 显示全部楼层 |阅读模式
目录
一、htop工具使用简介
二、dstat工具使用简介
    此博文针对linux系统介绍两款常用系统性能监控软件的基本使用,对于Linux系统我们一般要监控的对象有进程、cpu、内存、磁盘IO、swap、网卡等。
(一)htop工具使用简介
    htop是一个比top更为易用,功能更强大的交互式进程查看器,是一个免费的,遵循GPL协定的,针对于Linux的进程查看器。还能实现在监控界面中对某一个进程发送信号,比如杀死一个进程等,也能调整一个进程的优先级等功能。先来一张htop运行时的图片。
wKioL1V4GLKjnxcfAAUS3UmN-lM641.jpg
htop的安装非常简单,在centos系统上只要配置好epel源,直接"yum -y install htop"即可,注意看上图中红框部份,通过这些快捷键我们就可以轻松掌握htop的基本使用方法,现整理一些常用的htip的使用方法。
1.1、怎样调整htop输出的排序标准
    默认时htop是以cpu的使用率为标准进行从大到小的排列,如果你想以内存的使用率、或以共享内存大小、或以占用cpu时间片为标准来排序,那可以这样来操作。
按下“F6”键,出现下图中的第一图,再选择你所期望排序的标准,我这里选择了“MEM%”,再回车确定即可,如下图中的第二张图。
wKiom1V4F0SQVBZHAAU-IsXU430394.jpg
wKiom1V4F3DDxZNbAAUUAi-YB0E482.jpg
1.2、怎样对指定的进程进行监控
    按下“F4”键,启用过虑功能,在输入框里输入你想要监控的进程名称,我这里以nginx为例,如下图所示。
wKiom1V4F56Ct9qFAAK3Wr_Vlco318.jpg
这样就可以监控你指定的进程了,再按下回车,再按下“F5”键,还可以查看进程之间的关系,如下图所示:
wKioL1V4GWPifRDAAAJkwpJxWFM638.jpg
从上图可以看出6个worker进程是由一个master进程fork出来的。那这里又怎么返回到默认打开时的窗口呢?再按下“F4”后,注意左下方的提示信息,再按下“Esc”后返回,只不过是按两下。
wKiom1V4GM3AAffPAAM_uW9wq08741.jpg
1.3、怎样定位到指定进程
    用第二种过虑方法也能定位到指定的进程,只不过第二种方法显示出来的进程只有你指定的进程,如果你只是想查看一下一个进程的基本信息,比如查看一下它的PID号是多少,那就不用采用过虑器的方式去查看了。直接用“Search”功能即可,操作方法为在htop的主界面按下“F3”(直接按下“/”这个键也可以,即问号所在键),在输入框输入你想定位的进程名即可,以nginx为例,如下图:
wKioL1V4Go-hysq9AAgK03idjhI948.jpg 如果你指定的进程名称有多个,还可以断续按“F3”键进行查找。
1.4、利用htop调整进程的nice值
    比如我想增加nginx的master进程的优先级,那我们要把master进程的nice值调小,那先在htop界面中先定位到nginx的master进程,再按下“F7”,按一次nice值就减去1,如果想增加nice值,那就按“F8”键。补充一点,nice值的范围是(-20,19),值越小,进程的优先级越高。结果如如下图所示:
wKioL1V4Gr3T0TwqAAgFtR3RuMU969.jpg 1.5、利用htop向进程传递信号
    通过htop可以向一个进程发送信号,比如你发现一个可疑进程,你可以直接杀掉它,即向进程发送“SIGKILL”信号,如果你想让一个进程重新启动一下,那可以向它发送“SIGHUP”信号等。以nginx为例,先定位到nginx,再按下“F9”键,再选择你要发送的信号,回车即可。仔细看了下,一共有32个信号。
wKiom1V4GTrj4ibsAAiUGOsv6Nk952.jpg htop的基本使用就到这里,更多的功能需要我们在实践中去挖掘。
(二)dstat工具使用简介
    dstat是一个多用途的系统资源统计工具,能打印出cpu、内存、磁盘、进程、网络、内存页等各种各样资源的状态统计信息,功能非常全面的系统监控工具。以centos系统上直接使用“yum -y install dstat”进行安装。
语法为:
dstat [-afv] [options..] [delay [count]]
-afv:是三个可先参数,可以自己测试一下每个参数的不同
option:是可先的众多选项
delsy:是指定采集频率
count:采集次数
这里介绍一些常用的options:
-c, --cpu   打开cpu的监控状态
-d, --disk  打开对磁盘的监控
-g, --page  打开对页面状态的监控
-n, --net    打开对网络的监控
-y, --sys   打开对系统内核活动的监控,主要是系统接受的中断和上下文切换的次数
-a, --all   这个选项相当于-cdgny这两个选项,是dstat默认的工作选项
-t, --time  这个选项可以把数据采集时的时间也一起输出
--tcp    打开对tcp状态的监控,包括处理listen,established,syn等状态的数量
--output file   指定监控输出信息保存为csv的文件
还有一些与插件相关的选项,有些插件需要自己安装,但有些则可直接使用,这里介绍几个比较常用的:
--top-bio :显示出最占用块级别IO的进程
--top-cpu:显示出最消耗cpu的进程
--top-io:显示出最占io的进程
--top-mem :显示出最消耗内存的进程
dstat的选项太多,这里只列出少数的一部份,可以man dstat进行查看。
1.1、dstat以默认选项输出
1
2
3
4
5
6
7
8
9
10
11
12
13
[iyunv@nod0 software]# dstat
----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw
  0   0  99   0   0   0|  13k 5050B|   0     0 |   0     6B|  37    45
  0   0 100   0   0   0|   0     0 |  60B  826B|   0     0 |  21    30
  0   0 100   0   0   0|   0     0 |  60B  346B|   0     0 |  16    31
  0   0 100   0   0   0|   0     0 |  60B  346B|   0     0 |  16    30
  0   1  99   0   0   0|   0     0 |  60B  346B|   0     0 |  17    29
  0   0 100   0   0   0|   0     0 |  60B  346B|   0     0 |  18    35
  0   0 100   0   0   0|   0     0 |  60B  346B|   0     0 |  15    27
  0   0 100   0   0   0|   0     0 |  60B  346B|   0     0 |  17    32
  0   0 100   0   0   0|   0     0 |  60B  346B|   0     0 |  19    31
  1   1  99   0   0   0|   0    16k|  60B  346B|   0     0 |  99    97



直接运行dstat时,默认是以“-cndgy”选项并频率为1秒输出监控信息,现对上边的输出做一个简单的解释。
----total-cpu-usage----:表示是系统中全部cpu的一个使用情况统计

usr sys idl wai hiq siq| :分别表示用户进程所用cpu的占比,内核进程所用cpu的占比,cpu空闲状态的比例,cpu等待io时间所占比例,cpu接受硬中断的次数,cpu接受软中断的次数。

-dsk/total- :表示系统中全部磁盘状态信息的输出

read  writ :分别表示全部磁盘发生读请求的数据量,全部磁盘发生写请求的数据量;

-net/total-  :表示系统中全部网卡的状态信息
recv  send :分别表示全部网卡收到的数据量,全部网卡发送报文的数据量
---paging-- :表示内存页面使用情况

--system--  :表示打开系统级的监控,包括中断和上下文切换

in: 每秒产生的中断次数
cs::每秒产生的上下文切换次数
1.2、找出占用系统资源最高的进程
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[iyunv@nod0 software]# dstat -t --top-cpu --top-io --top-mem
----system---- -most-expensive- ----most-expensive---- --most-expensive-
  date/time   |  cpu process   |     i/o process      |  memory process
10-06 18:46:38|sshd: root@pt0.0|bash         51k 1503B|mysqld      95.0M
10-06 18:46:39|                |sshd: root@ 491B  532B|mysqld      95.0M
10-06 18:46:40|                |sshd: root@ 184B  228B|mysqld      95.0M
10-06 18:46:41|dd            19|dd           73M   72M|mysqld      95.0M
10-06 18:46:42|flush-8:0    0.5|bash        100M  100M|mysqld      95.0M
10-06 18:46:43|                |sshd: root@ 191B  244B|mysqld      95.0M
10-06 18:46:44|                |sshd: root@ 184B  228B|mysqld      95.0M
10-06 18:46:45|sshd: root@pt0.5|sshd: root@ 184B  228B|mysqld      95.0M
10-06 18:46:46|                |sshd: root@ 191B  244B|mysqld      95.0M
10-06 18:46:47|jbd2/sda2-8  0.5|sshd: root@ 184B  228B|mysqld      95.0M
10-06 18:46:48|                |sshd: root@ 191B  244B|mysqld      95.0M
10-06 18:46:49|                |sshd: root@ 184B  228B|mysqld      95.0M
10-06 18:46:50|dd           6.5|dd           93M   92M|mysqld      95.0M
10-06 18:46:51|dd           6.0|dd         7168k 8192k|mysqld      95.0M



这样就比较容易的找出系统中占用资源的最高的进程,在查找服务器性能瓶颈时非常有用。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-76066-1-1.html 上篇帖子: 通过SecureCRT对python操作时无法正确使用 方向键 退格键 下篇帖子: centos 单网卡批量添加不同IP段 linux 监控
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表