运维常用的命令

运维常用的命令

iostat

命令用来显示存储子系统的详细信息,通常用它来监控磁盘 I/O 的情况。要特别注意 iostat 统计结果中的 %iowait 值,太大了表明你的系统存储子系统性能低下。

Demo

iostat -d -x 5 3

参数命令解释

  • -d 显示设备利用率报告(d == disk)
  • -x 显示包括磁盘利用率的扩展统计信
  • 5 是取样间隔
  • 3 是总的取样次数

输出


Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.30   310.59   16.98  165.66  2756.39  3809.99    35.95     0.22    1.19   0.49   8.98
dm-0              0.00     0.00    0.71    3.78    13.21    30.22     9.69     0.02    5.45   0.59   0.26
dm-1              0.00     0.00    0.03    0.06     0.26     0.50     8.00     0.01   54.49   0.22   0.00
dm-2              0.00     0.00   14.90  451.17  2589.13  3609.35    13.30     2.68    5.76   0.19   8.72
dm-3              0.00     0.00    0.00    0.00     0.01     0.00     8.00     0.00    1.37   0.65   0.00
dm-4              0.00     0.00    1.72   21.24   153.74   169.92    14.10     2.54  110.74   0.04   0.08

字段解释

  • rrqm/s 每秒排队等待到硬盘的读取请求数
  • wrqm/s 每秒排队等待到硬盘的写入请求数
  • r/s 每秒读取请求的数量
  • w/s 每秒写入请求数
  • rsec/s 从硬盘每秒读取的扇区数
  • wsec/s 写入每秒硬盘的扇区数
  • avgrq-sz 发给设备的请求的平均大小(以扇区为单位)
  • avgqu-sz 发送到设备的请求的平均队列长度
  • await 发给设备的I / O请求的平均时间(以毫秒为单位)。 这包括请求在队列中花费的时间以及为维护请求所花费的时间
  • svctm 发送到设备的I / O请求的平均服务时间(以毫秒为单位)
  • %util 向设备发出I / O请求的CPU时间百分比(设备的带宽利用率)。 当该值接近100%时发生器件饱和。

free

可让你获取内存的详细信息,你可以使用 cat 和 grep 命令来显示 meminfo 信息

demo

free -m

             total       used       free     shared    buffers     cached
Mem:         63598      63193        405          0        280       7961
-/+ buffers/cache:      54951       8647
Swap:        31863        137      31726

  • total:总计物理内存的大小。
  • used:已使用多大。
  • free:可用有多少。
  • Shared:多个进程共享的内存总额。
  • Buffers/cached:磁盘缓存的大小。

第三行(-/+ buffers/cached):

  • used:已使用多大。
  • free:可用有多少。

meminfo

cat /proc/meminfo

可让你获取内存的详细信息,你可以使用 cat 和 grep 命令来显示 meminfo 信息:

mpstat

mpstat是MultiProcessor Statistics的缩写,是实时系统监控工具。其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中。在多CPUs系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息。

demo

mpstat

inux 2.6.32-431.el6.x86_64 (mem_name)       2017年01月10日     _x86_64_        (32 CPU)

17时10分39秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
17时10分39秒  all    0.15    0.00    0.06    0.17    0.00    0.00    0.00    0.00   99.63

参数解读

mpstat [-P {|ALL}] [internal [count]]


-P {|ALL} 表示监控哪个CPU, cpu在[0,cpu个数-1]中取值

internal 相邻的两次采样的间隔时间

count 采样的次数,count只能和delay一起使用

当没有参数时,mpstat则显示系统启动以后所有信息的平均值。有interval时,第一行的信息自系统启动以来的平均信息

字段介绍:

  • user 在interval时间段里,用户态的CPU时间(%),不包含 nice值为负 进程 (usr/total)*100

  • nice 在interval时间段里,nice值为负进程的CPU时间(%) (nice/total)*100

  • system 在interval时间段里,核心时间(%) (system/total)*100

  • iowait 在interval时间段里,硬盘IO等待时间(%) (iowait/total)*100

  • irq 在interval时间段里,硬中断时间(%) (irq/total)*100

  • soft 在interval时间段里,软中断时间(%) (softirq/total)*100

  • idle 在interval时间段里,CPU除去等待磁盘IO操作外的因为任何原因而空闲的时间闲置时间(%)(idle/total)*100

  • intr/s 在interval时间段里,每秒CPU接收的中断的次数intr/total)*100

  • CPU总的工作时间=total_cur=user+system+nice+idle+iowait+irq+softirq

  • total_pre=pre_user+ pre_system+ pre_nice+ pre_idle+ pre_iowait+ pre_irq+ pre_softirq

  • user=user_cur – user_pre

  • total=total_cur-total_pre

netstat

显示了大量跟网络相关的信息,例如 socket 的使用、路由、接口、协议、网络等等,下面是一些常用的参数:

可以参考netstat教程

nmon

用以监控 Linux 系统的性能。Nmon 监控多个子系统的性能数据,例如处理器的使用率、内存使用率、队列、磁盘I/O统计、网络I/O统计、内存页处理和进程信息。Nmon 也提供了一个图形化的工具:

你可以在命令行中启动它,然后选择要监控的子系统,这些子系统都对应有一个快捷键,例如输入 c 可查看 CPU 信息,m用于查看内存,d用来查看磁盘信息等,你也可以使用 -f 命令将 nmon 的执行结果保存到一个 CSV 文件中,便于日后分析。

在每日的监控工作中,我发现 nmon 是我最常用的工具。

[图片上传失败...(image-e554b-1529163874942)]

pmap

查看进程内存使用状况

pmap PID 或者 #pmap [options] PID

  • -x extended显示扩展格式
  • -d device显示设备格式
  • -q quiet不显示header/footer行
  • -V 显示版本信息

ps

查看占用内存最大的前十个进程

demo

ps -aux --sort -pcpu,+pmem | head -n 10

可以搭配watch

watch -n 1 'ps -aux --sort -pmem, -pcpu | head 20'

sar

sar 该程序包含三个工具:sar 用来显示数据,sa1 和 sa2 用来收集数据并保存。sar 可用来显示 CPU 使用率、内存页数据、网络 I/O 和传输统计、进程创建活动和磁盘设备的活动详情。sar 和 nmon 最大的不同就是 sar 跟适合用作长期的监控,而 nmon 可以让你快速的了解系统当前状态。

strace

strace 经常被认为是程序员调试的工具,但不止如此。它可以记录进程进行系统调用的详情,因此它也是一个非常好的诊断工具,例如你可以使用它来找出某个程序正在打开某个配置文件。Strace 也有一个缺陷,但它在跟踪某个进程时会让该进程的性能变得非常差,因此请谨慎使用

tcpdump

Tcpdump 是一个简单、可靠的网络监控工具,用来做基本的协议分析,看看那些进程在使用网络以及如何使用网络

top

top 命令显示当前的活动进程,默认它是按消耗 CPU 的厉害程度进行排序,每5秒钟刷新一次列表,你也可以选择不同的排序方式,例如 m 是按内存占用方式进行排序的快捷键

vmstat

你可以使用 vmstat 来监控虚拟内存,一般 Linux 上的开发者喜欢使用虚拟内存来获得最佳的存储性能。该命令报告关于内核线程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息。由 vmstat 命令生成的报告可以用于平衡系统负载活动。系统范围内的这些统计信息(所有的处理器中)都计算出以百分比表示的平均值,或者计算其总和。

watch

是一个非常实用的命令,基本所有的 Linux 发行版都带有这个小工具,如同名字一样,watch 可以帮你监测一个命令的运行结果,省得你一遍遍的手动运行

你可能感兴趣的:(运维常用的命令)