Linux——服务器巡检常用的命令

前言

由于工作中常常需要兼顾运维工作,涉及到对服务器资源的巡检,所以会用到各种命令来检查服务器各项指标是否正常,本篇文章将介绍巡检过程中常用的命令,也是给自己做一个总结,希望对各位读者有所帮助。

一、CPU篇

(一)top命令

top命令其实算是一个比较综合的查询系统资源的命令,它提供了一个动态的、交互式的实时视图。我们从下图中可以看到,看板中大致可以分为两个模块,上面的模块是系统的整体性能信息,下面的模块展示正在运行的进程的相关信息。
我们现在主要关心CPU参数,那么我们就先忽略其他内容,先聚焦于第三行的CPU信息。

top命令执行结果

1、关于CPU 参数的解释

我们可以看到,图中展示的cpu信息是:%Cpu(s): 5.6 us, 1.1 sy, 0.0 ni, 93.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st,这一串文本具体是什么意思呢?
我们可以结合下面的名词解释进行介绍。

  • us
    us是 user的缩写,表示用户空间占用CPU百分比 。正常情况下,我们部署在服务器上面的应用、中间件以及执行的脚本,都算是运行在用户地址空间的进程,这些程序如果不是处于idle状态,那么绝大多数的CPU时间都是运行在用户态。
    5.6 us表示的就是当前服务器用户空间占用CPU的百分比为5.6%,其实很多应用都是属于非CPU密集型类型的,所以CPU资源占用少是比较正常的。

  • sy
    sy是system的缩写,表示内核空间占用CPU百分比。所有进程要使用的系统资源都是由Linux内核处理的。当处于用户态(用户地址空间)的进程需要使用系统的资源时,比如需要分配一些内存、或是执行IO操作、再或者是去创建一个子进程,此时就会进入内核态(内核地址空间)运行。事实上,决定进程在下一时刻是否会被运行的进程调度程序就运行在内核态。
    一般来说,sy占比比较高的常见场景是系统中存在大量的IO操作(比如说文件拷贝,大批量的内存回收)或者是并发状态下服务器处理请求

  • ni
    ni 是 nice的缩写,表示用户进程空间内改变过优先级的进程占用CPU百分比。Linux支持我们通过nice值调整进程用户态的优先级,这里显示的ni表示调整过nice值的进程消耗掉的CPU时间。如果系统中没有进程被调整过nice值,那么ni就显示为0
    (这个用得比较少,我们一般也不怎么关注)

  • id
    id 是 idle的缩写,表示空闲CPU百分比。我们可以利用这个值来获取当前空闲的CPU以及反向推算CPU的使用率

  • wa
    wa是wait的缩写等待输入输出的CPU时间百分比。我们知道CPU的速度要远比磁盘的IO速度快得多,CPU在启动一个磁盘读写操作后,需要等待磁盘读写操作的结果。在磁盘读写操作完成前,CPU只能处于空闲状态。Linux系统在计算系统平均负载时会把CPU等待IO操作的时间也计算进去,所以在我们看到系统平均负载过高时,可以通过wa来判断系统的性能瓶颈是不是过多的IO操作造成的。

  • hi和si
    hi和si分别是hard interruptsoft interrupt,对应硬中断和软中断占用百分比。
    硬中断表示硬盘、网卡等硬件设备发送给CPU的中断消息,当CPU收到中断消息后需要进行适当的处理(消耗CPU时间)
    软中断表示由程序发出的中断,最终也会执行相应的处理程序(消耗CPU时间)

那么cpu使用率怎么看?

可以两种计算方式:100% - id% 或者 us% + sy% ni%(后者的公式不是很严谨,没算上等待时间和中断时间,但一般基本都够用),通过任意一个式子基本上就可以得到当前服务器cpu资源的使用情况了

2、top命令常用的参数
选项 效果
-d <秒数> 指定 top 命令的刷新时间间隔,单位为秒(不指定的话默认3s刷新一次)
-n <次数> 指定 top 命令运行的次数后自动退出
-p <进程ID> 仅显示指定进程ID的信息
-u <用户名> 仅显示指定用户名的进程信息
-H 在进程信息中显示线程详细信息
-i 不显示闲置(idle)或无用的进程
-b 以批处理(batch)模式运行,直接将结果输出到文件
-c 显示完整的命令行而不截断
-S 累计显示进程的 CPU 使用时间
3、top的交互命令

top命令和其他常见命令不同的地方在于,它在执行过程中支持交互性的传递参数。下面我们就列举几个常用的交互性参数吧

命令 解释
1 多cpu情况下会展示每个cpu的使用情况,其实用得不算多
u + 用户名 筛选出指定用户的进程
E 切换顶部的内存显示单位,从KB/MB/GB/T/E等单位轮询切换
e 切换底部进程的内存显示单位,从KB/MB/GB/T/E等单位轮询切换
c 展示COMMAND列中完整的命令行
注意事项

巡检的时候由于服务器数量多,且top命令默认又是交互型的命令,所以我们一般不太会每台服务器都登录上去手动执行top命令后再手动按q退出。
我们一般会非交互式地执行top命令,并把结果输出到一个结果文件中

top -n 1 >> a.txt

二、内存篇

其实top命令本身就已经包含了内存数据,不过更多时候笔者还是习惯用free命令来快速查看系统当前的内存使用情况

(一)free命令

free命令是专门用来展示当前系统的内存和Swap交换区使用情况的命令,默认情况下结果以KB为单位进行展示

free命令结果

我们可以加一些选项来优化输出结果

结果以(人类)易读模式展示
free -h
结果加上汇总列
free -t

三、磁盘篇

(一)df

df命令是disk free的缩写,表示磁盘空间,是我们经常用来检查磁盘使用空间的命令。df命令默认情况下也是以KB作为展示单位,我们常常会使用df -h命令来方便我们查看结果

df命令执行结果

了解Linux系统根路径目录的读者可能已经发现了,df命令的结果中并没有/etc/proc等根路径目录的存储结果,这是因为df命令是以文件系统为单位进行展示的,如果你想知道怎么判断某个目录是属于哪个文件系统,可以从下一小节的磁盘清理介绍中了解到更多细节。

(二)关于磁盘清理

当出现磁盘空间超过健康值的情况,我们一般会对磁盘容量进行分析,查看哪些文件以及目录占用的磁盘空间比较高,再根据实际情况来进行转移/压缩或者删除处理。
假设现在我发现/dev/mapper/rootvg-lv_root这个文件系统空间快满了,希望删除一些临时文件来减轻磁盘压力,那么这个时候我们会希望知道当前删除的文件是否在这个文件系统上面。我们可以通过下面的命令来查看这个文件(夹)是属于哪个文件系统的

df path
(三)du

du命令是disk usage单词的缩写,表示磁盘使用情况。和df命令不同,df命令是一个大而笼统的统计,有时候我们可能只是单纯希望统计某个目录下所有文件的总大小。这个时候du命令会更适合我们,du命令默认情况下会展示当前目录下所有子目录的大小(注意,这里的子目录是已经包含子目录内所有层级所有文件的大小))以及当前目录的总大小,存储单位为KB。但是du命令默认不会展示目录内非目录类型的文件大小

du命令默认结果

下面是比较常见的选项

选项 解释
-a / -all 详细展示所有层级的子目录和文件大小
-h或--human-readable 以K,M,G为单位,提高信息的可读性
-s 比较实用的命令,一般来说我们更关注当前下一个层级目录的总大小。仅显示指定目录或文件的总大小,而不显示其子目录的大小
--exclude=<目录或文件> 略过指定的目录或文件
--max-depth=<目录层数> 超过指定层数的目录后,予以忽略

笔者一般会使用du -sh * | sort -rh | head -n 5来快速查看当前目录下最占空间的目录或者文件

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,188评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,464评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,562评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,893评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,917评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,708评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,430评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,342评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,801评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,976评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,115评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,804评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,458评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,008评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,135评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,365评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,055评论 2 355

推荐阅读更多精彩内容