Loading... <p style="text-indent: 28px"><span style="font-family:宋体">工欲善事情,必先利其器,生产环境中的服务器在处理请求并生成回应数据的时间主要消耗在服务器端,包括了众多的环节,如何全面了解我们linux服务器的CPU使用率、使用时间、内存占用比例、磁盘IO数据、网络相关数据等等众多指标,保证我们的linux服务器顺利完成每一个请求,怎能没有几个趁手的利刃,而今天就让我们见识一下系统管理中三大利刃。</span></p> <p style="text-indent: 28px"><span style="font-family:宋体">相传一把三尺长的软剑,叫七星绝命剑,剑刃上嵌着七颗星状的暗器,一剑刺出,使剑人的内力劲透剑身之时,那七颗星状的暗器便飞脱疾出,出其不意地取人性命,(见古龙《吸血娥》)。而htop便是我们今天所讲的第一把利刃,和上面传说中的七星绝命剑类似,有着七个最常用命令,让我们先来看一下htop的真面目:</span></p> <p><img title="1447254319809430.jpg" alt="htop.jpg" src="//cto.wang/usr/uploads/2016/07/20160703180622-36.jpg" /></p> <p style="text-indent: 28px"><span style="font-family:宋体">从上图可以看出,相较于</span><span style="font-family:Calibri">CentOS</span><span style="font-family:宋体">发行版上系统自带的</span><span style="font-family:Calibri">top</span><span style="font-family:宋体">工具,</span><span style="font-family:Calibri">htop</span><span style="font-family:宋体">工具无论是信息内容丰富程度,还是在用户界面的友好度上,都有着无可比拟的优势,而且</span><span style="font-family:Calibri">htop</span><span style="font-family:宋体">工具支持交互式命令,下面让我们来认识一下</span><span style="font-family:Calibri">htop</span><span style="font-family:宋体">工具常见的七个交互式命令。</span></p> <p style="text-indent: 28px"><span style="font-family:Calibri">u </span><span style="font-family:宋体">:具有过滤功能,能显示用户指定用户的进程</span></p> <p style="text-indent: 28px"><span style="font-family:Calibri">s </span><span style="font-family:宋体">:选定某个进程后,使用该命令可以跟踪该进程所发起的系统调用</span></p> <p style="text-indent: 28px"><span style="font-family:Calibri">l </span><span style="font-family:宋体">:选定某个进程后,使用该命令可以显示该经常打开的文件有那些</span></p> <p style="text-indent: 28px"><span style="font-family:Calibri">t </span><span style="font-family:宋体">:直接使用该命令可以显示进程的层级机构</span></p> <p style="text-indent: 28px"><span style="font-family:Calibri">a </span><span style="font-family:宋体">:使用该命令可以设定某个进程的</span><span style="font-family:Calibri">cpu</span><span style="font-family:宋体">亲缘性</span></p> <p style="text-indent: 28px"><span style="font-family:Calibri">k </span><span style="font-family:宋体">:使用该命令可以结束某个指定进程</span></p> <p style="text-indent: 28px"><span style="font-family:Calibri">h </span><span style="font-family:宋体">:该工具还有众多功能,使用该命令可以获取该工具其他帮助信息</span></p> <p style="text-indent: 28px"><span style="font-family:Calibri"> </span></p> <p style="text-indent: 28px"><span style="font-family:宋体">以上七个命令就是</span><span style="font-family:Calibri">htop</span><span style="font-family:宋体">工具最常用的命令,掌握好这七个命令就好比拥有了七星绝命剑的七颗</span><span style="font-family:宋体">星状暗器,杀人于无形,旨在一瞬间,但是如何把握这七个形状暗器的力度和功用,需要我们对htop有着更深入的理解,接下来我们详细介绍htop的众多输出信息的详解:</span></p> <p style="text-indent: 28px"><span style="font-family:宋体">CPU usage bar</span><span style="font-family:宋体">:该行主要显示CPU使用情况,而且不光这些,htop还为将不同颜色来区分是使用情况,蓝色的表示low-prority使用,绿色的表示normal使用情况,红色的表示kernel使用情况,青色的表示vistualiz使用情况。</span></p> <p style="text-indent: 28px"><span style="font-family:宋体">Memory bar</span><span style="font-family:宋体">:该行主要表示内存使用情况,同样的htop使用了不同颜色来区分是使用情况,绿色的表示已经使用内存情况,蓝色的表示用于缓冲的内存使用情况,黄色的表示用于缓存的内存使用情况。</span></p> <p style="text-indent: 28px"><span style="font-family:宋体">Swap bar</span><span style="font-family:宋体">:该行主要显示交换分区使用情况,当你发现你的交换分区已经派上用场的时候,说明你的物理内存已经不足,需要考虑增加内存了。</span></p> <p style="text-indent: 28px"><span style="font-family:Calibri">PID</span><span style="font-family:宋体">:表示进程号</span></p> <p style="text-indent: 28px"><span style="font-family:Calibri">USER</span><span style="font-family:宋体">:发起该进程的用户名</span></p> <p style="text-indent: 28px"><span style="font-family:Calibri">PRI</span><span style="font-family:宋体">:进程优先级</span></p> <p style="text-indent: 28px"><span style="font-family:Calibri">NI</span><span style="font-family:宋体">:</span><span style="font-family:Calibri">nice</span><span style="font-family:宋体">值</span></p> <p style="text-indent: 28px"><span style="font-family:Calibri">VIRT</span><span style="font-family:宋体">:进程需要的虚拟内存</span></p> <p style="text-indent: 28px"><span style="font-family:Calibri">RES</span><span style="font-family:宋体">:常驻内存,也就是物理内存</span></p> <p style="text-indent: 28px"><span style="font-family:Calibri">SHR</span><span style="font-family:宋体">:共享内存</span></p> <p style="text-indent: 28px"><span style="font-family:Calibri">S</span><span style="font-family:宋体">:进程的运行状况:</span><span style="font-family:Calibri">R</span><span style="font-family:宋体">表示正在运行,</span><span style="font-family:Calibri">S</span><span style="font-family:宋体">表示休眠,</span><span style="font-family:Calibri">Z</span><span style="font-family:宋体">表示僵死状态</span></p> <p style="text-indent: 28px"><span style="font-family:Calibri">CPU%</span><span style="font-family:宋体">:占用的</span><span style="font-family:Calibri">CPU</span><span style="font-family:宋体">使用率</span></p> <p style="text-indent: 28px"><span style="font-family:Calibri">MEM%</span><span style="font-family:宋体">:物理内存使用率</span></p> <p style="text-indent: 28px"><span style="font-family:Calibri">TIME%</span><span style="font-family:宋体">:占用</span><span style="font-family:Calibri">CPU</span><span style="font-family:宋体">的累计时长</span></p> <p style="text-indent: 28px"><span style="font-family:Calibri">Command</span><span style="font-family:宋体">:进程启动的启动命令名称即路径</span></p> <p style="text-indent: 28px"><span style="font-family:宋体">有了以上的详解,我想</span><span style="font-family:Calibri">htop</span><span style="font-family:宋体">这把利刃将会发挥最大的用处。</span></p> <p><span style="font-family:Calibri"> </span></p> <p style="text-indent: 28px"><span style="font-family:宋体">相传君子剑剑身乌黑,没半点光泽,就似一段黑木一般,和</span><span style="font-family:宋体;color:windowtext">平常</span><span style="font-family:宋体">的宝剑不同,这剑既无尖头,又无剑锋,圆头钝边,倒有些似一条薄薄的木鞭,但寒气逼人,而且锋锐异常。此剑与淑女剑一模一样,大小长短,全无二致,双剑的材料完全相同,都具有极强的磁性,如果放的距离较近,双剑会自动吸在一起此剑后落到少年</span><span style="font-family:宋体;color:windowtext">杨过</span><span style="font-family:宋体">手中,与</span><span style="font-family:宋体;color:windowtext">小龙女</span><span style="font-family:宋体">手里的</span><span style="font-family:宋体;color:windowtext">淑女剑</span><span style="font-family:宋体">联剑出击,以</span><span style="font-family:宋体;color:windowtext">玉女素心剑法</span><span style="font-family:宋体">威震天下,(见《神雕侠侣》)。而</span><span style="font-family:Calibri">glances</span><span style="font-family:宋体">就是我们要说的第二把利刃,与相传的君子剑有相似之处,</span><span style="font-family:Calibri">glances</span><span style="font-family:宋体">支持客户端</span><span style="font-family:Calibri">/</span><span style="font-family:宋体">服务器模式,远程模式使用将会有奇效,接下来我们认识这把君子淑女剑吧。</span></p> <p><span style="font-family:Calibri"> </span><span style="font-family:Calibri">glances</span><span style="font-family:宋体">并不是</span><span style="font-family:Calibri">CentOS</span><span style="font-family:宋体">发行版默认安装的工具,需要在</span><span style="font-family:Calibri">epel</span><span style="font-family:宋体">源里面安装使用,首先让我们先来认识一下</span><span style="font-family:Calibri">glances</span><span style="font-family:宋体">吧,如下图:</span></p> <p><span style="font-family:宋体"><img title="1447254393162637.png" alt="glances.png" src="//cto.wang/usr/uploads/2016/07/20160703180622-21.png" /></span></p> <p><span style="font-family:宋体"><br /></span></p> <p style="text-indent: 27px"><span style="font-family:Calibri">glances</span><span style="font-family:宋体">工具支持的选项众多,我们先来认识一下</span><span style="font-family:Calibri">glances</span><span style="font-family:宋体">的常用选项:</span></p> <p style="text-indent: 27px"><span style="font-family:Calibri">-b </span><span style="font-family:宋体">:以</span><span style="font-family:Calibri">byte/s</span><span style="font-family:宋体">为单位显示网卡设备</span></p> <p style="text-indent: 27px"><span style="font-family:Calibri">-d </span><span style="font-family:宋体">:禁用或者关闭显示磁盘</span><span style="font-family:Calibri">IO</span><span style="font-family:宋体">功能模块</span></p> <p style="text-indent: 27px"><span style="font-family:Calibri">-f </span><span style="font-family:宋体">:通常和</span><span style="font-family:Calibri">-o</span><span style="font-family:宋体">一起使用设置输出文件位置即格式</span></p> <p style="text-indent: 27px"><span style="font-family:Calibri">-o </span><span style="font-family:宋体">:指明输出的格式,通常为{</span><span style="font-family:Calibri">CSV|HTML</span><span style="font-family:宋体">}</span></p> <p style="text-indent: 27px"><span style="font-family:Calibri">-m </span><span style="font-family:宋体">:关闭</span><span style="font-family:Calibri">mount</span><span style="font-family:宋体">功能模块</span></p> <p style="text-indent: 27px"><span style="font-family:Calibri">-n </span><span style="font-family:宋体">:关闭网络功能模块</span></p> <p style="text-indent: 27px"><span style="font-family:Calibri">-t</span><span style="font-family:Calibri"> </span><span style="font-family:宋体">:指明刷新时长,默认为</span><span style="font-family:Calibri">3</span><span style="font-family:宋体">秒</span></p> <p style="text-indent: 27px"><span style="font-family:Calibri">-1</span><span style="font-family:Calibri"> </span><span style="font-family:宋体">:单独显示每颗</span><span style="font-family:Calibri">CPU</span><span style="font-family:宋体">相关的负载数据信息</span></p> <p style="text-indent: 27px"><span style="font-family:宋体">以上就是</span><span style="font-family:Calibri">glances</span><span style="font-family:宋体">工具常用选项,同时</span><span style="font-family:Calibri">glances</span><span style="font-family:宋体">工具还支持在工作界面下直接按相对应的选项就可以关闭或者设置相关功能的,上面曾说过</span><span style="font-family:Calibri">glances</span><span style="font-family:宋体">工具支持</span><span style="font-family:Calibri">C/S</span><span style="font-family:宋体">模式,那它是如何在</span><span style="font-family:Calibri">C/S</span><span style="font-family:宋体">模式下工作的那?</span> <span style="font-family:宋体">首先:</span><span style="font-family:Calibri">server</span><span style="font-family:宋体">端以监听模式启动</span><span style="font-family:Calibri">glances</span><span style="font-family:宋体">;其次:</span><span style="font-family:Calibri">client</span><span style="font-family:宋体">端以远程模式启动</span><span style="font-family:Calibri">glances</span><span style="font-family:宋体">远程连入指定服务器,并获取</span><span style="font-family:Calibri">server</span><span style="font-family:宋体">上相关的性能数据。</span></p> <p style="text-indent: 27px"><span style="font-family:宋体">服务端命令:</span><span style="font-family:Calibri">glances</span><span style="font-family:Calibri"> </span><span style="font-family:Calibri">-s</span><span style="font-family:Calibri"> </span><span style="font-family:Calibri">-B</span><span style="font-family:Calibri"> </span><span style="font-family:Calibri">IPADDRESS</span><span style="font-family:宋体">(指定用于监听的本地地址)</span></p> <p style="text-indent: 27px"><span style="font-family:宋体">客户端命令:</span><span style="font-family:Calibri">glances</span><span style="font-family:Calibri"> </span><span style="font-family:Calibri">-c</span><span style="font-family:Calibri"> </span><span style="font-family:Calibri">IPADDRESS</span><span style="font-family:宋体">(指明连入的服务器地址)</span></p> <p style="text-indent: 27px"><span style="font-family:Calibri">glances</span><span style="font-family:宋体">所显示的丰富信息包括了系统运行的众多模块,包括了</span><span style="font-family:Calibri">cpu</span><span style="font-family:宋体">相关模块,多核情况下每个核心的负载情况,内存使用模块,交换分去使用情况,网络使用状况,磁盘</span><span style="font-family:Calibri">IO</span><span style="font-family:宋体">使用情况,以及各分区挂载情况,我相信通过了解以上系统运行期间的状况,一定能判断出当前系统运行是所出现的问题,帮助我们找出问题所在。</span></p> <p style="text-indent: 27px"><span style="font-family:Calibri"> </span></p> <p style="text-indent: 27px"><span style="font-family:Calibri"> </span></p> <p style="text-indent: 27px"><span style="font-family:宋体">相传当初傲日并非打算铸造「绝世好剑」,而是要铸造「败亡之剑」,可惜「败亡」的铸造过程太过邪异,每次铸剑,均会造成人命伤亡,故此傲家中人弃「败亡」而改铸「绝世」。铸剑的最后步骤是以三毒之血「贪」(剑贪之血),「瞋」(步惊云之血),「痴」(断浪之血)炼制。但所铸成的只是威力神髓所在的真元,而真正的剑体已藏于千万铸好的绝世好剑中,绝世好剑本身有吸摄天地灵气之能,同样也可吸收别人功力转为己用。位列当世十大神兵之一,见《风云》。而我们今天所说的第三把系统管理的兵刃,于绝世好剑有过之而不及,绝世好剑需要集三毒之血(剑贪之血)、(步惊云之血)、(断浪之血)炼制而成,而</span><span style="font-family:Calibri">dstat</span><span style="font-family:宋体">整合了</span><span style="font-family:Calibri">vmstat</span><span style="font-family:宋体">、</span><span style="font-family:Calibri">iostat</span><span style="font-family:宋体">、</span><span style="font-family:Calibri">netstat</span><span style="font-family:宋体">、</span><span style="font-family:Calibri">ifstat</span><span style="font-family:宋体">四款工具的功能于一身,功能无比强大,首先来看看这个利刃的庐山真面目,如下图:</span></p> <p><img title="1447254434843834.jpg" alt="dstat.jpg" src="//cto.wang/usr/uploads/2016/07/20160703180623-55.jpg" /></p> <p style="text-indent: 27px"><span style="font-family:宋体">通过上图可以更直观的看出系统各功能模块的使用状况,而且</span><span style="font-family:Calibri">dstat</span><span style="font-family:宋体">是</span><span style="font-family:Calibri">CentOS</span><span style="font-family:宋体">默认提供的一款工具,并且使用起来十分的灵活,可以通过不同的组合来显示出我们需要的功能模块,下面来认识一下</span><span style="font-family:Calibri">dstat</span><span style="font-family:宋体">这款工具的主要选项有那些:</span></p> <p style="text-indent: 27px"><span style="font-family:Calibri">-c </span><span style="font-family:宋体">:显示</span><span style="font-family:Calibri">CPU</span><span style="font-family:宋体">相关的统计数据</span></p> <p style="text-indent: 27px"><span style="font-family:Calibri">-d </span><span style="font-family:宋体">:显示磁盘相关的统计数据</span></p> <p style="text-indent: 27px"><span style="font-family:Calibri">-g </span><span style="font-family:宋体">:显示</span><span style="font-family:Calibri">Page</span><span style="font-family:宋体">相关的速率数据</span></p> <p style="text-indent: 27px"><span style="font-family:Calibri">-i </span><span style="font-family:宋体">:显示中断相关的统计数据</span></p> <p style="text-indent: 27px"><span style="font-family:Calibri">-l </span><span style="font-family:宋体">:显示</span><span style="font-family:Calibri">load average</span><span style="font-family:宋体">相关的统计信息</span></p> <p style="text-indent: 27px"><span style="font-family:Calibri">-m</span><span style="font-family:宋体">:显示内存相关的统计信息</span></p> <p style="text-indent: 27px"><span style="font-family:Calibri">-n </span><span style="font-family:宋体">:显示网络相关的统计数据速率信息</span></p> <p style="text-indent: 27px"><span style="font-family:Calibri">-N </span><span style="font-family:宋体">:指定接口</span></p> <p style="text-indent: 27px"><span style="font-family:Calibri">-p </span><span style="font-family:宋体">:显示进程相关的统计数据</span></p> <p style="text-indent: 27px"><span style="font-family:Calibri">-r </span><span style="font-family:宋体">:显示</span><span style="font-family:Calibri">IO</span><span style="font-family:宋体">请求的速率</span></p> <p style="text-indent: 27px"><span style="font-family:Calibri">-s </span><span style="font-family:宋体">:显示</span><span style="font-family:Calibri">swap</span><span style="font-family:宋体">交换分区的相关数据</span></p> <p style="text-indent: 27px"><span style="font-family:Calibri">-y </span><span style="font-family:宋体">:显示系统相关的数据包括中断和进程间切换等相关信息</span></p> <p style="text-indent: 27px"><span style="font-family:Calibri">–top-cpu</span><span style="font-family:宋体">:显示最占用</span><span style="font-family:Calibri">CPU</span><span style="font-family:宋体">的进程</span></p> <p style="text-indent: 27px"><span style="font-family:Calibri">–top-bio</span><span style="font-family:宋体">:显示最消耗块级别</span><span style="font-family:Calibri">IO</span><span style="font-family:宋体">的进程</span></p> <p style="text-indent: 27px"><span style="font-family:Calibri">–top-time</span><span style="font-family:宋体">:显示最占用</span><span style="font-family:Calibri">CPU</span><span style="font-family:宋体">时长的进程</span></p> <p style="text-indent: 27px"><span style="font-family:Calibri">–top-io</span><span style="font-family:宋体">:显示最占用</span><span style="font-family:Calibri">io</span><span style="font-family:宋体">的进程</span></p> <p style="text-indent: 27px"><span style="font-family:Calibri">–top-mem</span><span style="font-family:宋体">:显示最占用内存的进程</span></p> <p style="text-indent: 27px"><span style="font-family:Calibri">–ipc</span><span style="font-family:宋体">:显示进程间通信相关的速率数据</span></p> <p style="text-indent: 27px"><span style="font-family:Calibri">–tcp</span><span style="font-family:宋体">:显示</span><span style="font-family:Calibri">tcp</span><span style="font-family:宋体">套接字相关的数据</span></p> <p style="text-indent: 27px"><span style="font-family:Calibri">–udp</span><span style="font-family:宋体">:显示</span><span style="font-family:Calibri">udp</span><span style="font-family:宋体">套接字的相关数据</span></p> <p style="text-indent: 27px"><span style="font-family:Calibri">–raw</span><span style="font-family:宋体">:显示</span><span style="font-family:Calibri">raw</span><span style="font-family:宋体">套接字相关数据</span></p> <p style="text-indent: 27px"><span style="font-family:Calibri">–unix</span><span style="font-family:宋体">:显示</span><span style="font-family:Calibri">unix sock</span><span style="font-family:宋体">接口相关的统计数据</span></p> <p style="text-indent: 27px"><span style="font-family:Calibri">-a </span><span style="font-family:宋体">:相当于</span><span style="font-family:Calibri">-cdngy</span></p> <p style="text-indent: 27px"><span style="font-family:Calibri"> </span></p> <p style="text-indent: 27px"><span style="font-family:宋体">以上就是</span><span style="font-family:Calibri">dstat</span><span style="font-family:宋体">工具的常用选项,之所以说该使用该工具十分领过是因为它即可以加上众多的参数来显示系统运行时丰富的各个功能模块的状态信息,如下图:</span></p> <p><img title="1447254473703798.jpg" alt="dstat1.jpg" src="//cto.wang/usr/uploads/2016/07/20160703180623-17.jpg" /></p> <p><span style="font-family:宋体">同时又可以根据自己的需要来单独显示某一个功能模块的信息或者显示当前系统最占用</span><span style="font-family:Calibri">CPU</span><span style="font-family:宋体">的进程,如下图:</span></p> <p><span style="font-family:宋体"><img title="1447254514631138.jpg" alt="dstat2.jpg" src="//cto.wang/usr/uploads/2016/07/20160703180623-50.jpg" /></span></p> <p><span style="font-family:宋体"><br /></span></p> <p><span style="font-family:宋体"> 以上就是系统管理中的三把利刃,只要精通任何一个工具,都有助于我们更加深入的了解我们系统运行过程中的问题和不足,及时的发行并解决这些问题,但同时我们也应该认识到,所谓的这些工具都是通过整合或分析</span><span style="font-family:Calibri">/proc/</span><span style="font-family:宋体">这个伪文件系统,为什么说它是伪文件系统那,因为它只存在内存当中而不占用外存空间,它是以文件系统的方式访问系统内核数据的操作提供接口,要想使用好以上三个工具,还需要更深入的理解系统是究竟怎么运行起来的,以及系统运行的原理是什么,当我们真的理解了这些,我想那个时候就是我们自己制作工具开始,正所谓真正的高手也都是制作工具的高手,就如同江湖里说的最好的境界乃是无剑胜有剑,摘叶飞花皆可伤人。</span></p> <p><span style="font-family:宋体"></span></p> <p><span style="font-family:宋体"></span></p> <p></p> 最后修改:2021 年 12 月 10 日 10 : 53 AM © 允许规范转载 赞赏 如果觉得我的文章对你有用,请随意赞赏 赞赏作者 支付宝微信