系统管理中的三大利刃

工欲善其事,比先利其器,生产环境中的服务器在处理请求并生成回应数据的时间主要消耗在服务器端,包括了众多的环节,如何全面了解我们linux服务器的CPU使用率、使用时间、内存占用比例、磁盘IO数据、网络相关数据等等众多指标,保证我们的linux服务器顺利完成每一个请求,怎能没有几个趁手的利刃,而今天就让我们见识一下系统管理中三大利刃。

相传一把三尺长的软剑,叫七星绝命剑,剑刃上嵌着七颗星状的暗器,一剑刺出,使剑人的内力劲透剑身之时,那七颗星状的暗器便飞脱疾出,出其不意地取人性命,(见古龙《吸血娥》)。而htop便是我们今天所讲的第一把利刃,和上面传说中的七星绝命剑类似,有着七个最常用命令,让我们先来看一下htop的真面目:

从上图可以看出,相较于CentOS发行版上系统自带的top工具,htop工具无论是信息内容丰富程度,还是在用户界面的友好度上,都有着无可比拟的优势,而且htop工具支持交互式命令,下面让我们来认识一下htop工具常见的七个交互式命令。

u :具有过滤功能,能显示用户指定用户的进程

s :选定某个进程后,使用该命令可以跟踪该进程所发起的系统调用

l :选定某个进程后,使用该命令可以显示该经常打开的文件有那些

t :直接使用该命令可以显示进程的层级机构

a :使用该命令可以设定某个进程的cpu亲缘性

k :使用该命令可以结束某个指定进程

h :该工具还有众多功能,使用该命令可以获取该工具其他帮助信息

以上七个命令就是htop工具最常用的命令,掌握好这七个命令就好比拥有了七星绝命剑的七颗星状暗器,杀人于无形,旨在一瞬间,但是如何把握这七个形状暗器的力度和功用,需要我们对htop有着更深入的理解,接下来我们详细介绍htop的众多输出信息的详解:

CPUusage bar:该行主要显示CPU使用情况,而且不光这些,htop还为将不同颜色来区分是使用情况,蓝色的表示low-prority使用,绿色的表示normal使用情况,红色的表示kernel使用情况,青色的表示vistualiz使用情况。

Memorybar:该行主要表示内存使用情况,同样的htop使用了不同颜色来区分是使用情况,绿色的表示已经使用内存情况,蓝色的表示用于缓冲的内存使用情况,***的表示用于缓存的内存使用情况。

Swapbar:该行主要显示交换分区使用情况,当你发现你的交换分区已经派上用场的时候,说明你的物理内存已经不足,需要考虑增加内存了。

PID:表示进程号

USER:发起该进程的用户名

PRI:进程优先级

NI:nice值

VIRT:进程需要的虚拟内存

RES:常驻内存,也就是物理内存

SHR:共享内存

S:进程的运行状况:R表示正在运行,S表示休眠,Z表示僵死状态

CPU%:占用的CPU使用率

MEM%:物理内存使用率

TIME%:占用CPU的累计时长

Command:进程启动的启动命令名称即路径

有了以上的详解,我想htop这把利刃将会发挥最大的用处。

相传君子剑剑身乌黑,没半点光泽,就似一段黑木一般,和平常的宝剑不同,这剑既无尖头,又无剑锋,圆头钝边,倒有些似一条薄薄的木鞭,但寒气逼人,而且锋锐异常。此剑与淑女剑一模一样,大小长短,全无二致,双剑的材料完全相同,都具有极强的磁性,如果放的距离较近,双剑会自动吸在一起此剑后落到少年杨过手中,与小龙女手里的淑女剑联剑出击,以玉女素心剑法威震天下,(见《神雕侠侣》)。而glances就是我们要说的第二把利刃,与相传的君子剑有相似之处,glances支持客户端/服务器模式,远程模式使用将会有奇效,接下来我们认识这把君子淑女剑吧。

glances并不是CentOS发行版默认安装的工具,需要在epel源里面安装使用,首先让我们先来认识一下glances吧,如下图:

glances工具支持的选项众多,我们先来认识一下glances的常用选项:

-b :以byte/s为单位显示网卡设备

-d :禁用或者关闭显示磁盘IO功能模块

-f :通常和-o一起使用设置输出文件位置即格式

-o :指明输出的格式,通常为{CSV|HTML}

-m :关闭mount功能模块

-n :关闭网络功能模块

-t  :指明刷新时长,默认为3秒

-1  :单独显示每颗CPU相关的负载数据信息

以上就是glances工具常用选项,同时glances工具还支持在工作界面下直接按相对应的选项就可以关闭或者设置相关功能的,上面曾说过glances工具支持C/S模式,那它是如何在C/S模式下工作的那?首先:server端以监听模式启动glances;其次:client端以远程模式启动glances远程连入指定服务器,并获取server上相关的性能数据。

服务端命令:glances    -s  -B   IPADDRESS(指定用于监听的本地地址)

客户端命令:glances    -c  IPADDRESS(指明连入的服务器地址)

glances所显示的丰富信息包括了系统运行的众多模块,包括了cpu相关模块,多核情况下每个核心的负载情况,内存使用模块,交换分去使用情况,网络使用状况,磁盘IO使用情况,以及各分区挂载情况,我相信通过了解以上系统运行期间的状况,一定能判断出当前系统运行是所出现的问题,帮助我们找出问题所在。

相传当初傲日并非打算铸造「绝世好剑」,而是要铸造「败亡之剑」,可惜「败亡」的铸造过程太过邪异,每次铸剑,均会造成人命伤亡,故此傲家中人弃「败亡」而改铸「绝世」。铸剑的最后步骤是以三毒之血「贪」(剑贪之血),「瞋」(步惊云之血),「痴」(断浪之血)炼制。但所铸成的只是威力神髓所在的真元,而真正的剑体已藏于千万铸好的绝世好剑中,绝世好剑本身有吸摄天地灵气之能,同样也可吸收别人功力转为己用。位列当世十大神兵之一,见《风云》。而我们今天所说的第三把系统管理的兵刃,于绝世好剑有过之而不及,绝世好剑需要集三毒之血(剑贪之血)、(步惊云之血)、(断浪之血)炼制而成,而dstat整合了vmstat、iostat、netstat、ifstat四款工具的功能于一身,功能无比强大,首先来看看这个利刃的庐山真面目,如下图:

通过上图可以更直观的看出系统各功能模块的使用状况,而且dstat是CentOS默认提供的一款工具,并且使用起来十分的灵活,可以通过不同的组合来显示出我们需要的功能模块,下面来认识一下dstat这款工具的主要选项有那些:

-c :显示CPU相关的统计数据

-d :显示磁盘相关的统计数据

-g :显示Page相关的速率数据

-i :显示中断相关的统计数据

-l :显示loadaverage相关的统计信息

-m:显示内存相关的统计信息

-n :显示网络相关的统计数据速率信息

-N :指定接口

-p :显示进程相关的统计数据

-r :显示IO请求的速率

-s :显示swap交换分区的相关数据

-y :显示系统相关的数据包括中断和进程间切换等相关信息

--top-cpu:显示最占用CPU的进程

--top-bio:显示最消耗块级别IO的进程

--top-time:显示最占用CPU时长的进程

--top-io:显示最占用io的进程

--top-mem:显示最占用内存的进程

--ipc:显示进程间通信相关的速率数据

--tcp:显示tcp套接字相关的数据

--udp:显示udp套接字的相关数据

--raw:显示raw套接字相关数据

--unix:显示unix sock接口相关的统计数据

-a :相当于-cdngy

以上就是dstat工具的常用选项,之所以说该使用该工具十分领过是因为它即可以加上众多的参数来显示系统运行时丰富的各个功能模块的状态信息,如下图:

同时又可以根据自己的需要来单独显示某一个功能模块的信息或者显示当前系统最占用CPU的进程,如下图:

以上就是系统管理中的三把利刃,只要精通任何一个工具,都有助于我们更加深入的了解我们系统运行过程中的问题和不足,及时的发行并解决这些问题,但同时我们也应该认识到,所谓的这些工具都是通过整合或分析/proc/这个伪文件系统,为什么说它是伪文件系统那,因为它只存在内存当中而不占用外存空间,它是以文件系统的方式访问系统内核数据的操作提供接口,要想使用好以上三个工具,还需要更深入的理解系统是究竟怎么运行起来的,以及系统运行的原理是什么,当我们真的理解了这些,我想那个时候就是我们自己制作工具开始,正所谓真正的高手也都是制作工具的高手,就如同江湖里说的最好的境界乃是无剑胜有剑,摘叶飞花皆可伤人。

时间: 2024-08-28 16:57:38

系统管理中的三大利刃的相关文章

thinkPHP中的三大自动

class UserModel extends Model{ protected  $_validate=array( //下面还需要再写数组.一个数组就是一条验证规则 //array('验证字段','验证规则','错误提示','验证条件','附加规则','验证时间'), //验证字段:需要验证的表单字段名称,也可以表单当中的一些辅助字段,例如验证码,附加码,重复密码等 //验证规则,验证规则必须要结合附加规则一起使用 //错误提示:如果出现错误,抛出一个什么样的错误提示告知用户 //验证条件:

eclipse中SSH三大框架环境搭建<三>

相关链接: eclipse中SSH三大框架环境搭建<一> eclipse中SSH三大框架环境搭建<二> 引言:通过上两篇文章我们已经可以掌握struts2和spring的环境的搭建以及简单使用,但是在访问数据库层面使用的是传统的JDBC.在我们项目开发中使用JDBC确实是不太理想的,所以今天我给大家来讲解一下目前行业中比较流行的持久层框架——hibernate. 第1步:我们依旧需要引入hibernate的jar包 找到hibernate解压好的文件目录,在该目录下的lib目录下有

磁盘管理及文件系统管理中各种命令的使用

磁盘管理及文件系统管理中各种命令的使用 (fdisk.mkfs.mount.umount)命令 fdisk命令 fdisk进行硬盘分区从实质上说就是对硬盘的一种格式化.当我们创建分区时,就已经设置好了硬盘的各项物理参数,指定了硬盘主引导记录(即MasterBootRecord,MBR)和引导记录备份的存放位置.而对于文件系统以及其他操作系统管理硬盘所需要的信息则是通过之后的高级格式化,即Format命令来实现.用一个形象的比喻,分区就好比在一张白纸上画一个大方框.而格式化好比在方框里打上格子.安

【分享】IT产业中的三大定理(三) —— 反摩尔定理 (Reverse Moore&#39;s Law)

Google(谷歌)的 CEO 埃里克·施密特在一次采访中指出,如果你反过来看摩尔定理,一个 IT 公司如果今天和十八个月前卖掉同样多的.同样的产品,它的营业额就要降一半.IT 界把它称为反摩尔定理.反摩尔定理对于所有的 IT 公司来讲,都是非常可悲的,因为一个 IT 公司花了同样的劳动,却只得到以前一半的收入.反摩尔定理逼着所有的硬件设备公司必须赶上摩尔定理规定的更新速度.事实上,所有的硬件和设备生产厂活得都是非常辛苦的.下表中列举了各个领域最大的公司今天的股值和他们最高值的比例. IBM:

【分享】IT产业中的三大定理(二) —— 安迪&amp;比尔定理 (Andy and Bill&#39;s Law)

摩尔定理给所有的计算机消费者带来一个希望,如果我今天嫌计算机太贵买不起,那么我等十八个月就可以用一半的价钱来买.要真是这样简单的话,计算机的销售量就上不去了.需要买计算机的人会多等几个月,已经有计算机的人也没有动力更新计算机.其它的 IT 产品也是如此. 事实上,在过去的二十年里,世界上的个人微机销量在持续增长.2004 年,英特尔公司估计,五年内,即到 2009 年,世界上 PC(包括个人机和小型服务器)的销量会增长 60%,远远高于经济的增长.那么,是什么动力促使人们不断地更新自己的硬件呢?

Linux磁盘管理及文件系统管理中命令的使用

1.磁盘管理工具fdisk的使用: 最多支持在一块硬盘上的15个分区: 分区管理子命令: p: 显示磁盘信息 n: 创建一个5G的主分区 d: 删除分区 t: 修改分区ID l: 列出所有支持ID类型 w: 保存退出 q: 放弃修改并退出 m: 获取帮助 创建完成之后,查看内核是否已经识别新的分区: # cat /proc/partitions 如果没有识别到新建分区可使用以下三个命令让内核重读磁盘分区表: CentOS 5: partprobe [DEVICE] CentOS 6,7: par

系统管理中 bash shell 脚本常用方法总结

FROM: http://www.cnblogs.com/hunterfu/archive/2010/02/23/1672129.html 在日常系统管理工作中,需要编写脚本来完成特定的功能,编写shell脚本是一个基本功了!在编写的过程中,掌握一些常用的技巧和语法就可以完成大部分功能了,也就是2/8原则. 1. 单引号和双引号的区别 单引号与双引号的最大不同在于双引号仍然可以引用变量的内容,但单引号内仅是普通字符 ,不会作变量的引用,直接输出字符窜.请看如下例子: [[email protec

OpenCV 中的三大数据类型( 概述 )

前言 OpenCV 提供了许多封装好了的类型,而其中,以三大类型最为核心.本文将大致介绍这三大类型. CvArr:不确定数组 它可以被视为一个抽象基类,后面的两大类型都继承此类型并扩展.只要某个函数的形参是这个类型,那么我们就可以把后面两种类型作为实参传递进去做处理. CvMat:多通道矩阵 它用来存放矩阵,OpeCV 提供了很多对此类型进行操作的函数,故使用此类型可以轻松玩转矩阵结构 :). IplImage:图像头 它用来存放图像,在之前的示例代码中,已经见到很多次了.由于对计算机而言,图像

Linux系统磁盘管理及文件系统管理中各类命令使用

一.复习上次内容 二.总结整理磁盘管理及文件系统管理中设计的各种命令的使用,并附注一定的示例: 1.mkfs命令使用 mkfs.type -t /dev/sda... mkfs -t ext2 = mkfs.ext2 mkfs -t ext3 = mkfs.ext3 2.mke2fs命令:管理ext系列文件系统 mke2fs [OPTION]...DEVICE -t:指定格式化格式{ext2|ext3|ext4} -b BLOCK_SIZE:指定块大小,默认4096k,也可指定1024或2048