运维必备故障排查、性能分析命令工具,你掌握了几个呢?

运维必备故障排查、性能分析命令工具,你掌握了几个呢?

运维侠日常的主要工作就是保证业务能够正常稳定的运行,从而使得我们能够流畅的网上冲浪,通宵联盟。在每个应用稳定运行的背后,都离不开程序员的兢兢业业。今天跟大家分享六个平时工作中可以经常使用,能够帮助大家排除解难的命令工具(主要涉及CPU、内存、磁盘、网络、端口、性能等方面)。

TOP1:top 家族

我们总是习惯性的登录系统输入“top”命令来查看系统资源使用情况,它是linux系统在故障排查、性能分析方面无可厚非的top1命令。

运维必备故障排查、性能分析命令工具,你掌握了几个呢?

通过top命令查看系统的CPU、内存、运行时间、交换分区、执行的线程等信息。通过top命令可以有效的发现系统的缺陷出在哪里。是内存不够、CPU处理能力不够、IO读写过高。

top命令各个输出信息说明:

运维必备故障排查、性能分析命令工具,你掌握了几个呢?

top 命令参数:

-b 批处理
-c 显示完整的治命令
-I 忽略失效过程
-s 保密模式
-S 累积模式
-i<时间> 设置间隔时间
-u<用户名> 指定用户名
-p<进程号> 指定进程
-n<次数> 循环显示的次数

top家族其他命令:

  • top命令,通过top命令可以有效的发现系统的缺陷出在哪里。是内存不够、CPU处理能力不够、IO读写过高。
  • iftop命令,iftop是linux命令行程序,用图形形式实时显示网络连接所使用的带宽。
  • iotop命令,iotop针对的是系统进程的磁盘读写情况
  • atop命令,能够监视 Linux 系统的性能状况,包括进程活动、CPU、内存、硬盘、网络等方面的使用情况等。
  • htop命令,可以让用户与之交互的进程查看器。

TOP2:netstat

netstat命令用于查看网络连接情况,系统路由表,系统端口占用情况等,是系统中非常重要的网络查看、网络诊断的命令工具。

运维必备故障排查、性能分析命令工具,你掌握了几个呢?

常见参数:

-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。

提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到

核心使用:

  • 查看监听服务端口
列出所有在监听的TCP和UDP端口:
netstat -tunpl
  • 统计网络连接数
使用netstat和awk命令来统计网络连接数:
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

TOP3:netcat

有着网络界的瑞士军刀美誉,短小精悍、功能实用,是可靠的网络工具。适用于网络连通性测试和端口扫描,机器之间传输文件,机器之间网络测速。

核心使用:

1.网络连通性测试和端口扫描

使用nc启用tcp端口监听 # nc -l 9999
使用telnet测试端口连通 # telnet <主机ip> 9999
使用nmap测试端口连通 # nmap 主机ip -p9999
使用nc测试端口连通 # nc -vzw 2 <主机ip> 9999
使用nc扫描服务端口 # nc -vzw 2 <主机ip> 9999-11000
使用nc启用udp端口监听 # nc -ul 9998

运维必备故障排查、性能分析命令工具,你掌握了几个呢?

2.使用nc传输文件和目录

两台主机之间怎么快捷、高效的传送文件,相比scp命令,nc命令工具是最优选择。

发送: $ nc 接收者ip 端口号 < 要发送的文件
接收: $ nc -l 端口号 > 要保存的文件名

注: 端口号(1024 ~ 65535)要匹配

3.测试网速

测试网速其实利用了传输文件的原理,就是把来自一台机器的/dev/zero 发送给另一台机器的/dev/null 就是把一台机器的无限个0,传输给另一个机器的空设备上,然后新开一个窗口使用dstat命令监测网速

方法:先启动接收命令方式

步骤1,A机器先启动接收数据的命令,监听自己的9991端口,把来自这个端口的数据都输出给空设备(这样不写磁盘,测试网速更准确)

nc -l 9991 >/dev/null

步骤2,B机器发送数据,把无限个0发送给A机器的9991端口

nc 10.0.1.161 9991 </dev/zero

然后,通过iftop命令分别在A机器和B机器查看当前网速

TOP4:vmstat

vmstat是一个很全面的性能分析工具,可以观察到系统的进程状态、内存使用、虚拟内存使用、磁盘的IO、中断、上下文切换、CPU使用等。

查看每秒输出系统性能状态:

vmstat 1

运维必备故障排查、性能分析命令工具,你掌握了几个呢?

命令各个输出信息说明:

运维必备故障排查、性能分析命令工具,你掌握了几个呢?

vmstat命令参数:

-a:显示活跃和非活跃内存
-f:显示从系统启动至今的fork数量 。
-m:显示slabinfo
-n:只在开始时显示一次各字段名称。
-s:显示内存相关统计信息及多种系统活动数量。
delay:刷新时间间隔。如果不指定,只显示一条结果。
count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷。
-d:显示磁盘相关统计信息。
-p:显示指定磁盘分区统计信息
-S:使用指定单位显示。参数有 k 、K 、m 、M ,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024 bytes)

TOP5:iostat

iostat用于监控系统磁盘的IO性能情况,ostat作为系统级别的IO性能分析工具,也是很常用的一款命令工具。

核心使用命令:

iostat -x -k -d 1

运维必备故障排查、性能分析命令工具,你掌握了几个呢?

命令各个输出信息说明:

运维必备故障排查、性能分析命令工具,你掌握了几个呢?

TOP6:telnet

Telnet的使用场景,主要用于测试端口连通性,算是家喻户晓的命令工具。

使用方法:

telnet IP 端口
或者 telnet 域名 端口

Telnet 客户端命常用命令:

open : 使用 openhostname 可以建立到主机的 Telnet 连接。
close : 使用命令 close 命令可以关闭现有的 Telnet 连接。
display : 使用 display 命令可以查看 Telnet 客户端的当前设置。
send : 使用 send 命令可以向 Telnet 服务器发送命令。支持以下命令:
1.ao # 放弃输出命令。
2.ayt # “Are you there”命令。
3.esc # 发送当前的转义字符。
4.ip # 中断进程命令。
5.synch # 执行 Telnet 同步操作。
6.brk # 发送信号。

运维必备故障排查、性能分析命令工具,你掌握了几个呢?

相关推荐