一些常见的运维排查问题的工具

今天分析生产的服务器图片问题时,请教了一位专家,发现专家的一些常用命令以及操作

1,linux下安装iftop工具

iftop可以用来监控实时流量

中间的<= =>这两个左右箭头,表示的是流量的方向。

TX:发送流量
RX:接收流量
TOTAL:总流量
Cumm:运行iftop到目前时间的总流量
peak:流量峰值
rates:分别表示过去 2s 10s 40s 的平均流量

2,使用awk命令分析nginx日志来源ip

awk '{print $1}' access_2019-04-23.log | sort -n | uniq -c | sort -rn

3,window目录下采用nslookup来发现dns解析

nslookup可以指定查询的类型,可以查到DNS记录的生存时间还可以指定使用哪个DNS服务器进行解释。在已安装TCP/IP协议的电脑上面均可以使用这个命令。主要用来诊断域名系统 (DNS) 基础结构的信息。Nslookup(name server lookup)( 域名查询):是一个用于查询 Internet域名信息或诊断DNS 服务器问题的工具.

当前的DNS服务器 ,可用server命令改变

4,vmstat 查看系统虚拟内存

vmstat  是virtual Memory Statistics 虚拟内存统计的缩写,可对操作系统的虚拟内存,进程,IO读写,cpu等活动进行监视,它是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析

输出字段含义:

Procs

     r: The number of processes waiting for run time.

       等待运行的进程数。如果等待运行的进程数越多,意味着CPU非常繁忙。另外,如果该参数长期大于和等于逻辑cpu个数,则CPU资源可能存在较大的瓶颈。

     b: The number of processes in uninterruptible sleep. 

     处在非中断睡眠状态的进程数。意味着进程被阻塞。主要是指被资源阻塞的进程对列数(比如IO资源、页面调度等),当这个值较大时,需要根据应用程序来进行分析,比如数据库产品,中间件应用等。

Memory

     swpd: the amount of virtual memory used.

     已使用的虚拟内存大小。如果虚拟内存使用较多,可能系统的物理内存比较吃紧,需要采取合适的方式来减少物理内存的使用。swapd不为0,并不意味物理内存吃紧,如果swapd没变化,si、so的值长期为0,这也是没有问题的     

     free: the amount of idle memory.

       空闲的物理内存的大小

     buff: the amount of memory used as buffers.

       用来做buffer(缓存,主要用于块设备缓存)的内存数,单位:KB

     cache: the amount of memory used as cache.

       用来做cache(缓存,主要用于缓存文件)的内存,单位:KB

     inact: the amount of inactive memory. (-a option)

       inactive memory的总量

     active: the amount of active memory. (-a option)

       active memroy的总量。

Swap

     si: Amount of memory swapped in from disk (/s).

        从磁盘交换到swap虚拟内存的交换页数量,单位:KB/秒。如果这个值大于0,表示物理内存不够用或者内存泄露了  

     so: Amount of memory swapped to disk (/s).

        从swap虚拟内存交换到磁盘的交换页数量,单位:KB/秒,如果这个值大于0,表示物理内存不够用或者内存泄露了

   内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响,磁盘IO和CPU资源都会被消耗。

   当看到空闲内存(free)很少的或接近于0时,就认为内存不够用了,这个是不正确的。不能光看这一点,还要结合si和so,

   如果free很少,但是si和so也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的。 

   当内存的需求大于RAM的数量,服务器启动了虚拟内存机制,通过虚拟内存,可以将RAM段移到SWAP DISK的特殊磁盘段上,

   这样会 出现虚拟内存的页导出和页导入现象,页导出并不能说明RAM瓶颈,虚拟内存系统经常会对内存段进行页导出,  但页导入操作就表明了服务器需要更多的内存了, 页导入需要从SWAP DISK上将内存段复制回RAM,导致服务器速度变慢。

IO

     bi: Blocks received from a block device (blocks/s).

        每秒从块设备接收到的块数,单位:块/秒 也就是读块设备。

     bo: Blocks sent to a block device (blocks/s).

        每秒发送到块设备的块数,单位:块/秒  也就是写块设备。

System

     in: The number of interrupts per second, including the clock.

        每秒的中断数,包括时钟中断 

     cs: The number of context switches per second. 

        每秒的环境(上下文)切换次数。比如我们调用系统函数,就要进行上下文切换,而过多的上下文切换会浪费较多的cpu资源,这个数值应该越小越好。

CPU

     These are percentages of total CPU time.

     us: Time spent running non-kernel code. (user time, including nice time)

        用户CPU时间(非内核进程占用时间)(单位为百分比)。 us的值比较高时,说明用户进程消耗的CPU时间多

     sy: Time spent running kernel code. (system time)

        系统使用的CPU时间(单位为百分比)。sy的值高时,说明系统内核消耗的CPU资源多,这并不是良性表现,我们应该检查原因。

     id: Time spent idle. Prior to Linux 2.5.41, this includes IO-wait time.

        空闲的CPU的时间(百分比),在Linux 2.5.41之前,这部分包含IO等待时间。

     wa: Time spent waiting for IO. Prior to Linux 2.5.41, shown as zero.

        等待IO的CPU时间,在Linux 2.5.41之前,这个值为0 .这个指标意味着CPU在等待硬盘读写操作的时间,用百分比表示。wait越大则机器io性能就越差。说明IO等待比较严重,这可能由于磁盘大量作随机访问造成,也有可能磁盘出现瓶颈(块操作)。

  st: Time stolen from a virtual machine. Prior to Linux 2.6.11, unknown.


5,iostat 查看系统IO

iostat -d -k 1 10        #查看TPS和吞吐量信息

iostat -d -x -k 1 10      #查看设备使用率(%util)、响应时间(await)

iostat -c 1 10            #查看cpu状态

相关推荐