zhcn 技术 手机 非公開: 每个系统管理员都应该知道的 12 个 Linux 性能命令

每个系统管理员都应该知道的 12 个 Linux 性能命令

如果您不知道正确的工具,那么解决 IT 领域中与性能相关的问题总是很困难且令人沮丧。

如果您在生产环境中从事支持工作,您可能需要处理 Linux 环境中与性能相关的问题。让我们看一下一些最常用的 Linux 命令行实用程序来诊断性能相关问题。

注意:下面列出的某些命令可能不会默认安装,必须手动安装。

每个系统管理员都应该知道的 12 个 Linux 性能命令
每个系统管理员都应该知道的 12 个 Linux 性能命令

勒索夫

lsof 代表“打开文件列表”,可帮助您查找所有打开的文件和进程以及打开它们的用户。 lsof 实用程序在某些情况下很有用。

列出特定 PID 打开的所有文件。

 # lsof –p PID 

统计文件和进程的数量

 [root@localhost ~]# lsof -p 4271 | wc -l
34
[root@localhost ~]# 

检查当前打开的日志文件

 # lsof –p | grep log 

找出进程使用的端口号

lsof -i -P |grep $PID 
 [root@localhost ~]# lsof -i -P |grep 4271

nginx     4271   root   6u IPv4 51306     0t0 TCP *: 80 (LISTEN)

nginx     4271   root   7u IPv4 51307     0t0 TCP *: 443 (LISTEN)

[root@localhost ~]# 

查看 lsof 命令的更多示例。

每个系统管理员都应该知道的 12 个 Linux 性能命令
每个系统管理员都应该知道的 12 个 Linux 性能命令

PID统计

您可以使用 pidstat 来监视 Linux 内核管理的任务。此命令简化了 I/O 相关问题的故障排除。

列出所有 PID 的 I/O 统计信息。

 # pidstat –d 

替换特定 PID 的 I/O 统计信息

 # pidstat –p 4271 –d 

如果您正在对某些进程进行实时故障排除,则可以定期监视 I/O。下面的示例是每 5 秒监控一次。

 [root@localhost ~]# pidstat -p 4362 -d 5

Linux 3.10.0-327.13.1.el7.x86_64 (localhost.localdomain)          08/13/2016             _x86_64_         (2 CPU) 

07:01:30 PM   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s Command

07:01:35 PM     0     4362     0.00     0.00     0.00 nginx

07:01:40 PM     0     4362     0.00     0.00     0.00 nginx

07:01:45 PM     0     4362     0.00     0.00     0.00 nginx

07:01:50 PM     0     4362     0.00     0.00     0.00 nginx 
每个系统管理员都应该知道的 12 个 Linux 性能命令
每个系统管理员都应该知道的 12 个 Linux 性能命令

多于

也许 Linux 上最常用的命令之一是 top。您可以使用top命令显示系统摘要信息和当前使用情况。

只需运行top命令即可查看CPU使用情况、进程详细信息、任务数量、内存使用情况、僵尸进程数量等。

 top - 11:48:43 up 13 days, 17:25,  1 user,  load average: 0.00, 0.00, 0.00
Tasks:  90 total,   2 running,  88 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.3 us,  0.0 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   1829.7 total,    388.1 free,    220.3 used,   1221.4 buff/cache
MiB Swap:      0.0 total,      0.0 free,      0.0 used.   1369.4 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                                                                              
    1 root      20   0  186820  13400   9092 S   0.0   0.7   0:10.87 systemd                                                                                                              
    2 root      20   0       0      0      0 S   0.0   0.0   0:00.13 kthreadd                                                                                                             
    3 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_gp                                                                                                               
    4 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_par_gp                                                                                                           
    6 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/0:0H                                                                                                         
    8 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 mm_percpu_wq                                                                                                         
    9 root      20   0       0      0      0 S   0.0   0.0   0:07.35 ksoftirqd/0                                                                                                          
   10 root      20   0       0      0      0 R   0.0   0.0   0:07.30 rcu_sched                                                                                                            
   11 root      rt   0       0      0      0 S   0.0   0.0   0:00.00 migration/0                                                                                                          
   12 root      rt   0       0      0      0 S   0.0   0.0   0:00.50 watchdog/0                                                                                                           
   13 root      20   0       0      0      0 S   0.0   0.0   0:00.00 cpuhp/0                                                                                                              
   15 root      20   0       0      0      0 S   0.0   0.0   0:00.00 kdevtmpfs                                                                                                            
   16 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 netns                                                                                                                
   17 root      20   0       0      0      0 S   0.0   0.0   0:00.68 kauditd                                                                                                              
   18 root      20   0       0      0      0 S   0.0   0.0   0:00.25 khungtaskd                                                                                                           
   19 root      20   0       0      0      0 S   0.0   0.0   0:00.00 oom_reaper                                                                                                           
   20 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 writeback                                                                                                            
   21 root      20   0       0      0      0 S   0.0   0.0   0:00.00 kcompactd0                                                                                                           
   22 root      25   5       0      0      0 S   0.0   0.0   0:00.00 ksmd                                                                                                                 
   23 root      39  19       0      0      0 S   0.0   0.0   0:05.63 khugepaged                                                                                                           
   24 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 crypto                                                                                                               
   25 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kintegrityd                                                                                                          
   26 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kblockd

查看特定用户的进程详细信息

 # top –u username 

要终止该进程,请运行 top 并按k 。系统会要求您输入 PID 以强制退出。

 top - 11:49:39 up 13 days, 17:26,  1 user,  load average: 0.00, 0.00, 0.00
Tasks:  91 total,   1 running,  90 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.3 us,  0.0 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   1829.7 total,    386.9 free,    221.4 used,   1221.4 buff/cache
MiB Swap:      0.0 total,      0.0 free,      0.0 used.   1368.3 avail Mem 
PID to signal/kill [default pid = 21261] 
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                                                                              
 5834 nginx     20   0  148712   7428   4800 S   0.0   0.4   0:02.37 nginx 
每个系统管理员都应该知道的 12 个 Linux 性能命令
每个系统管理员都应该知道的 12 个 Linux 性能命令

附注

ps 代表进程状态,是一种广泛使用的命令,用于拍摄正在运行的进程的快照。对于检查进程是否正在运行并打印其 PID(如果正在运行)非常有用。

我想知道Word中的PID和处理细节。

 [root@lab ~]# ps -ef|grep nginx
root      5833     1  0 May24 ?        00:00:00 nginx: master process /usr/sbin/nginx
nginx     5834  5833  0 May24 ?        00:00:02 nginx: worker process
root     21267 18864  0 11:50 pts/0    00:00:00 grep --color=auto nginx
[root@lab ~]#

tcp转储

排除网络问题总是很困难,但要使用的基本命令之一是 tcpdump。

您可以使用tcpdump捕获网络接口上的网络数据包。

捕获特定网络接口上的数据包

[root@lab ~]# tcpdump -i eth0 -w /tmp/capture
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
^C9 packets captured
16 packets received by filter
0 packets dropped by kernel
[root@lab ~]#

如您所见,上面捕获了eth0接口上的流量。

捕获源IP和目标IP之间的网络流量

 # tcpdump src $IP and dst host $IP 

捕获目标端口 443 上的网络流量。

 # tcpdump dst port 443
tcpdump: data link type PKTAP
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on pktap, link-type PKTAP (Packet Tap), capture size 262144 bytes
12:02:30.833845 IP 192.168.1.2.49950 > ec2-107-22-185-206.compute-1.amazonaws.com.https: Flags [.], ack 421458229, win 4096, length 0
12:02:32.076893 IP 192.168.1.2.49953 > 104.25.133.107.https: Flags [S], seq 21510813, win 65535, options [mss 1460,nop,wscale 5,nop,nop,TS val 353259990 ecr 0,sackOK,eol], length 0
12:02:32.090389 IP 192.168.1.2.49953 > 104.25.133.107.https: Flags [.], ack 790725431, win 8192, length 0
12:02:32.090630 IP 192.168.1.2.49953 > 104.25.133.107.https: Flags [P.], seq 0:517, ack 1, win 8192, length 517
12:02:32.109903 IP 192.168.1.2.49953 > 104.25.133.107.https: Flags [.], ack 147, win 8187, length 0 

加载捕获的文件

# tcpdump –r filename

示例:读取上面捕获的文件

# tcpdump –r /tmp/test

了解有关用于捕获和分析网络流量的 tcpdump 的更多信息。

iostat

iostat 代表输入/输出统计信息,通常用于诊断存储设备的性能问题。您可以使用 iostat 监视 CPU、设备和网络文件系统使用情况报告。

查看磁盘 I/O 统计信息

 [root@localhost ~]# iostat -d
Linux 3.10.0-327.13.1.el7.x86_64 (localhost.localdomain)          08/13/2016             _x86_64_         (2 CPU)
Device:           tps   kB_read/s   kB_wrtn/s   kB_read   kB_wrtn
sda               1.82       55.81       12.63     687405     155546
[root@localhost ~]# 

显示CPU统计信息

 [root@localhost ~]# iostat -c
Linux 3.10.0-327.13.1.el7.x86_64 (localhost.localdomain)          08/13/2016             _x86_64_         (2 CPU)
avg-cpu: %user   %nice %system %iowait %steal   %idle
           0.59   0.02   0.33   0.54   0.00   98.52
[root@localhost ~]# 

LDD

ldd 代表List Dynamic Dependency ,表示库所需的共享库。 ldd命令对于诊断启动应用程序时的问题很有用。

如果您的程序由于依赖项不可用而无法启动,您可以运行 ldd 来查找您的程序正在查找的共享库。

 [root@localhost sbin]# ldd httpd
            linux-vdso.so.1 => (0x00007ffe7ebb2000)
            libpcre.so.1 => /lib64/libpcre.so.1 (0x00007fa4d451e000)
            libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fa4d42f9000)
            libaprutil-1.so.0 => /lib64/libaprutil-1.so.0 (0x00007fa4d40cf000)
            libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007fa4d3e98000)
            libexpat.so.1 => /lib64/libexpat.so.1 (0x00007fa4d3c6e000)
            libdb-5.3.so => /lib64/libdb-5.3.so (0x00007fa4d38af000)
            libapr-1.so.0 => /lib64/libapr-1.so.0 (0x00007fa4d3680000)
            libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fa4d3464000)
            libdl.so.2 => /lib64/libdl.so.2 (0x00007fa4d325f000)
            libc.so.6 => /lib64/libc.so.6 (0x00007fa4d2e9e000)
            liblzma.so.5 => /lib64/liblzma.so.5 (0x00007fa4d2c79000)
            /lib64/ld-linux-x86-64.so.2 (0x00007fa4d4a10000)
            libuuid.so.1 => /lib64/libuuid.so.1 (0x00007fa4d2a73000)
            libfreebl3.so => /lib64/libfreebl3.so (0x00007fa4d2870000)
[root@localhost sbin]# 

净统计

netstat(网络统计)是一个常用命令,用于打印网络连接、接口统计数据以及排除各种网络相关问题。

查看所有协议的统计信息

 # netstat –s 

可以使用grep检查是否有错误

 [root@localhost sbin]# netstat -s | grep error
   0 packet receive errors
   0 receive buffer errors
   0 send buffer errors
[root@localhost sbin]# 

显示内核路由表

 [root@localhost sbin]# netstat -r
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window irtt Iface
default         gateway         0.0.0.0         UG       0 0         0 eno16777736
172.16.179.0   0.0.0.0         255.255.255.0   U         0 0         0 eno16777736
192.168.122.0   0.0.0.0         255.255.255.0   U         0 0         0 virbr0
[root@localhost sbin]# 

让我们仔细看看 netstat 命令示例。

自由的

如果您的 Linux 服务器内存不足或者您想知道有多少可用内存,那么 free 命令会很有帮助。

 [root@localhost sbin]# free -g
             total       used       free     shared buff/cache   available
Mem:             5           0           3           0           1           4
Swap:             5           0           5
[root@localhost sbin]# 

-g表示以 GB 为单位显示详细信息。如您所见,总可用内存为 5 GB,其中有 3 GB 可用内存。

塞尔

sar(系统活动报告)可帮助您收集大量报告,例如CPU、内存、设备负载等。

只需运行sar命令即可查看一整天的系统使用情况。

合成孔径雷达输出
合成孔径雷达输出
合成孔径雷达输出

默认情况下,每 10 分钟保存一次利用率报告。如果你想要实时且简短的东西,你可以这样使用它:

每 3 秒显示 3 次 CPU 报告

 [root@localhost sbin]# sar 3 2
Linux 3.10.0-327.13.1.el7.x86_64 (localhost.localdomain)          08/13/2016             _x86_64_         (2 CPU)
11:14:02 PM     CPU     %user     %nice   %system   %iowait   %steal     %idle
11:14:05 PM     all     1.83     0.00     0.50     0.17     0.00     97.51
11:14:08 PM     all     1.50     0.00      0.17     0.00     0.00     98.33
Average:       all     1.67     0.00     0.33     0.08     0.00     97.92
[root@localhost sbin]# 

查看内存使用报告

 # sar –r 

查看网络报告

 # sar –n ALL 

综合控制系统

ipcs(进程间通信系统)提供有关信号量、共享内存和消息队列的报告。

列出消息队列

 # ipcs –q 

列出信号量

 # ipcs –s 

列出共享内存

 # ipcs –m 

查看当前IPC使用情况

 [root@localhost sbin]# ipcs -u

------ Messages Status --------
allocated queues = 0
used headers = 0
used space = 0 bytes

------ Shared Memory Status --------
segments allocated 5
pages allocated 2784
pages resident 359
pages swapped   0
Swap performance: 0 attempts       0 successes

------ Semaphore Status --------
used arrays = 0
allocated semaphores = 0
[root@localhost sbin]# 

约平

ioping 是一个外部命令,可以从此处安装。实时监控磁盘 I/O 延迟非常有用。

结论

我希望上述命令对您系统管理工作中的各种情况有用。上述命令根据需要很有用。但是,如果您需要持续监控 Linux 服务器,则应该考虑使用服务器监控软件。

如果您想了解有关 Linux 性能的更多信息,请查看此Udemy 课程

《系统管理员应该知道的12条Linux性能命令》浅显易懂讲解!您必须观看的最佳 2 个视频

Linuxのtopコマンドとは【Linuxエンジニア初心者向け(LinuC資格対策)】
https://www.youtube.com/watch?v=0LAindz7LQE&pp=ygVj44K344K544OG44Og566h55CG6ICF44GM55-l44Gj 44Gm44GK44GP44G544GNIDEyIOOBriBMaW51eCDjg5Hjg5Xjgqnjg7zjg57jg7Pjgrkg44Kz44Oe44Oz44OJJmhsPUpB
Linuxディレクトリ構造を完全解説!
https://www.youtube.com/watch?v=bzqrlef15wI&pp=ygVj44K344K544OG44Og566h55CG6ICF44GM55-l44Gj 44Gm44GK44GP44G544GNIDEyIOOBriBMaW51eCDjg5Hjg5Xjgqnjg7zjg57jg7Pjgrkg44Kz44Oe44Oz44OJJmhsPUpB

如果您不知道正确的工具,那么解决 IT 领域中与性能相关的问题总是很困难且令人沮丧。

如果您在生产环境中从事支持工作,您可能需要处理 Linux 环境中与性能相关的问题。让我们看一下一些最常用的 Linux 命令行实用程序来诊断性能相关问题。

注意:下面列出的某些命令可能不会默认安装,必须手动安装。

每个系统管理员都应该知道的 12 个 Linux 性能命令
每个系统管理员都应该知道的 12 个 Linux 性能命令

勒索夫

lsof 代表“打开文件列表”,可帮助您查找所有打开的文件和进程以及打开它们的用户。 lsof 实用程序在某些情况下很有用。

列出特定 PID 打开的所有文件。

 # lsof –p PID 

统计文件和进程的数量

 [root@localhost ~]# lsof -p 4271 | wc -l
34
[root@localhost ~]# 

检查当前打开的日志文件

 # lsof –p | grep log 

找出进程使用的端口号

lsof -i -P |grep $PID 
 [root@localhost ~]# lsof -i -P |grep 4271

nginx     4271   root   6u IPv4 51306     0t0 TCP *: 80 (LISTEN)

nginx     4271   root   7u IPv4 51307     0t0 TCP *: 443 (LISTEN)

[root@localhost ~]# 

查看 lsof 命令的更多示例。

每个系统管理员都应该知道的 12 个 Linux 性能命令
每个系统管理员都应该知道的 12 个 Linux 性能命令

PID统计

您可以使用 pidstat 来监视 Linux 内核管理的任务。此命令简化了 I/O 相关问题的故障排除。

列出所有 PID 的 I/O 统计信息。

 # pidstat –d 

替换特定 PID 的 I/O 统计信息

 # pidstat –p 4271 –d 

如果您正在对某些进程进行实时故障排除,则可以定期监视 I/O。下面的示例是每 5 秒监控一次。

 [root@localhost ~]# pidstat -p 4362 -d 5

Linux 3.10.0-327.13.1.el7.x86_64 (localhost.localdomain)          08/13/2016             _x86_64_         (2 CPU) 

07:01:30 PM   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s Command

07:01:35 PM     0     4362     0.00     0.00     0.00 nginx

07:01:40 PM     0     4362     0.00     0.00     0.00 nginx

07:01:45 PM     0     4362     0.00     0.00     0.00 nginx

07:01:50 PM     0     4362     0.00     0.00     0.00 nginx 
每个系统管理员都应该知道的 12 个 Linux 性能命令
每个系统管理员都应该知道的 12 个 Linux 性能命令

多于

也许 Linux 上最常用的命令之一是 top。您可以使用top命令显示系统摘要信息和当前使用情况。

只需运行top命令即可查看CPU使用情况、进程详细信息、任务数量、内存使用情况、僵尸进程数量等。

 top - 11:48:43 up 13 days, 17:25,  1 user,  load average: 0.00, 0.00, 0.00
Tasks:  90 total,   2 running,  88 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.3 us,  0.0 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   1829.7 total,    388.1 free,    220.3 used,   1221.4 buff/cache
MiB Swap:      0.0 total,      0.0 free,      0.0 used.   1369.4 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                                                                              
    1 root      20   0  186820  13400   9092 S   0.0   0.7   0:10.87 systemd                                                                                                              
    2 root      20   0       0      0      0 S   0.0   0.0   0:00.13 kthreadd                                                                                                             
    3 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_gp                                                                                                               
    4 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_par_gp                                                                                                           
    6 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/0:0H                                                                                                         
    8 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 mm_percpu_wq                                                                                                         
    9 root      20   0       0      0      0 S   0.0   0.0   0:07.35 ksoftirqd/0                                                                                                          
   10 root      20   0       0      0      0 R   0.0   0.0   0:07.30 rcu_sched                                                                                                            
   11 root      rt   0       0      0      0 S   0.0   0.0   0:00.00 migration/0                                                                                                          
   12 root      rt   0       0      0      0 S   0.0   0.0   0:00.50 watchdog/0                                                                                                           
   13 root      20   0       0      0      0 S   0.0   0.0   0:00.00 cpuhp/0                                                                                                              
   15 root      20   0       0      0      0 S   0.0   0.0   0:00.00 kdevtmpfs                                                                                                            
   16 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 netns                                                                                                                
   17 root      20   0       0      0      0 S   0.0   0.0   0:00.68 kauditd                                                                                                              
   18 root      20   0       0      0      0 S   0.0   0.0   0:00.25 khungtaskd                                                                                                           
   19 root      20   0       0      0      0 S   0.0   0.0   0:00.00 oom_reaper                                                                                                           
   20 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 writeback                                                                                                            
   21 root      20   0       0      0      0 S   0.0   0.0   0:00.00 kcompactd0                                                                                                           
   22 root      25   5       0      0      0 S   0.0   0.0   0:00.00 ksmd                                                                                                                 
   23 root      39  19       0      0      0 S   0.0   0.0   0:05.63 khugepaged                                                                                                           
   24 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 crypto                                                                                                               
   25 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kintegrityd                                                                                                          
   26 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kblockd

查看特定用户的进程详细信息

 # top –u username 

要终止该进程,请运行 top 并按k 。系统会要求您输入 PID 以强制退出。

 top - 11:49:39 up 13 days, 17:26,  1 user,  load average: 0.00, 0.00, 0.00
Tasks:  91 total,   1 running,  90 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.3 us,  0.0 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   1829.7 total,    386.9 free,    221.4 used,   1221.4 buff/cache
MiB Swap:      0.0 total,      0.0 free,      0.0 used.   1368.3 avail Mem 
PID to signal/kill [default pid = 21261] 
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                                                                              
 5834 nginx     20   0  148712   7428   4800 S   0.0   0.4   0:02.37 nginx 
每个系统管理员都应该知道的 12 个 Linux 性能命令
每个系统管理员都应该知道的 12 个 Linux 性能命令

附注

ps 代表进程状态,是一种广泛使用的命令,用于拍摄正在运行的进程的快照。对于检查进程是否正在运行并打印其 PID(如果正在运行)非常有用。

我想知道Word中的PID和处理细节。

 [root@lab ~]# ps -ef|grep nginx
root      5833     1  0 May24 ?        00:00:00 nginx: master process /usr/sbin/nginx
nginx     5834  5833  0 May24 ?        00:00:02 nginx: worker process
root     21267 18864  0 11:50 pts/0    00:00:00 grep --color=auto nginx
[root@lab ~]#

tcp转储

排除网络问题总是很困难,但要使用的基本命令之一是 tcpdump。

您可以使用tcpdump捕获网络接口上的网络数据包。

捕获特定网络接口上的数据包

[root@lab ~]# tcpdump -i eth0 -w /tmp/capture
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
^C9 packets captured
16 packets received by filter
0 packets dropped by kernel
[root@lab ~]#

如您所见,上面捕获了eth0接口上的流量。

捕获源IP和目标IP之间的网络流量

 # tcpdump src $IP and dst host $IP 

捕获目标端口 443 上的网络流量。

 # tcpdump dst port 443
tcpdump: data link type PKTAP
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on pktap, link-type PKTAP (Packet Tap), capture size 262144 bytes
12:02:30.833845 IP 192.168.1.2.49950 > ec2-107-22-185-206.compute-1.amazonaws.com.https: Flags [.], ack 421458229, win 4096, length 0
12:02:32.076893 IP 192.168.1.2.49953 > 104.25.133.107.https: Flags [S], seq 21510813, win 65535, options [mss 1460,nop,wscale 5,nop,nop,TS val 353259990 ecr 0,sackOK,eol], length 0
12:02:32.090389 IP 192.168.1.2.49953 > 104.25.133.107.https: Flags [.], ack 790725431, win 8192, length 0
12:02:32.090630 IP 192.168.1.2.49953 > 104.25.133.107.https: Flags [P.], seq 0:517, ack 1, win 8192, length 517
12:02:32.109903 IP 192.168.1.2.49953 > 104.25.133.107.https: Flags [.], ack 147, win 8187, length 0 

加载捕获的文件

# tcpdump –r filename

示例:读取上面捕获的文件

# tcpdump –r /tmp/test

了解有关用于捕获和分析网络流量的 tcpdump 的更多信息。

iostat

iostat 代表输入/输出统计信息,通常用于诊断存储设备的性能问题。您可以使用 iostat 监视 CPU、设备和网络文件系统使用情况报告。

查看磁盘 I/O 统计信息

 [root@localhost ~]# iostat -d
Linux 3.10.0-327.13.1.el7.x86_64 (localhost.localdomain)          08/13/2016             _x86_64_         (2 CPU)
Device:           tps   kB_read/s   kB_wrtn/s   kB_read   kB_wrtn
sda               1.82       55.81       12.63     687405     155546
[root@localhost ~]# 

显示CPU统计信息

 [root@localhost ~]# iostat -c
Linux 3.10.0-327.13.1.el7.x86_64 (localhost.localdomain)          08/13/2016             _x86_64_         (2 CPU)
avg-cpu: %user   %nice %system %iowait %steal   %idle
           0.59   0.02   0.33   0.54   0.00   98.52
[root@localhost ~]# 

LDD

ldd 代表List Dynamic Dependency ,表示库所需的共享库。 ldd命令对于诊断启动应用程序时的问题很有用。

如果您的程序由于依赖项不可用而无法启动,您可以运行 ldd 来查找您的程序正在查找的共享库。

 [root@localhost sbin]# ldd httpd
            linux-vdso.so.1 => (0x00007ffe7ebb2000)
            libpcre.so.1 => /lib64/libpcre.so.1 (0x00007fa4d451e000)
            libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fa4d42f9000)
            libaprutil-1.so.0 => /lib64/libaprutil-1.so.0 (0x00007fa4d40cf000)
            libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007fa4d3e98000)
            libexpat.so.1 => /lib64/libexpat.so.1 (0x00007fa4d3c6e000)
            libdb-5.3.so => /lib64/libdb-5.3.so (0x00007fa4d38af000)
            libapr-1.so.0 => /lib64/libapr-1.so.0 (0x00007fa4d3680000)
            libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fa4d3464000)
            libdl.so.2 => /lib64/libdl.so.2 (0x00007fa4d325f000)
            libc.so.6 => /lib64/libc.so.6 (0x00007fa4d2e9e000)
            liblzma.so.5 => /lib64/liblzma.so.5 (0x00007fa4d2c79000)
            /lib64/ld-linux-x86-64.so.2 (0x00007fa4d4a10000)
            libuuid.so.1 => /lib64/libuuid.so.1 (0x00007fa4d2a73000)
            libfreebl3.so => /lib64/libfreebl3.so (0x00007fa4d2870000)
[root@localhost sbin]# 

净统计

netstat(网络统计)是一个常用命令,用于打印网络连接、接口统计数据以及排除各种网络相关问题。

查看所有协议的统计信息

 # netstat –s 

可以使用grep检查是否有错误

 [root@localhost sbin]# netstat -s | grep error
   0 packet receive errors
   0 receive buffer errors
   0 send buffer errors
[root@localhost sbin]# 

显示内核路由表

 [root@localhost sbin]# netstat -r
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window irtt Iface
default         gateway         0.0.0.0         UG       0 0         0 eno16777736
172.16.179.0   0.0.0.0         255.255.255.0   U         0 0         0 eno16777736
192.168.122.0   0.0.0.0         255.255.255.0   U         0 0         0 virbr0
[root@localhost sbin]# 

让我们仔细看看 netstat 命令示例。

自由的

如果您的 Linux 服务器内存不足或者您想知道有多少可用内存,那么 free 命令会很有帮助。

 [root@localhost sbin]# free -g
             total       used       free     shared buff/cache   available
Mem:             5           0           3           0           1           4
Swap:             5           0           5
[root@localhost sbin]# 

-g表示以 GB 为单位显示详细信息。如您所见,总可用内存为 5 GB,其中有 3 GB 可用内存。

塞尔

sar(系统活动报告)可帮助您收集大量报告,例如CPU、内存、设备负载等。

只需运行sar命令即可查看一整天的系统使用情况。

合成孔径雷达输出
合成孔径雷达输出
合成孔径雷达输出

默认情况下,每 10 分钟保存一次利用率报告。如果你想要实时且简短的东西,你可以这样使用它:

每 3 秒显示 3 次 CPU 报告

 [root@localhost sbin]# sar 3 2
Linux 3.10.0-327.13.1.el7.x86_64 (localhost.localdomain)          08/13/2016             _x86_64_         (2 CPU)
11:14:02 PM     CPU     %user     %nice   %system   %iowait   %steal     %idle
11:14:05 PM     all     1.83     0.00     0.50     0.17     0.00     97.51
11:14:08 PM     all     1.50     0.00      0.17     0.00     0.00     98.33
Average:       all     1.67     0.00     0.33     0.08     0.00     97.92
[root@localhost sbin]# 

查看内存使用报告

 # sar –r 

查看网络报告

 # sar –n ALL 

综合控制系统

ipcs(进程间通信系统)提供有关信号量、共享内存和消息队列的报告。

列出消息队列

 # ipcs –q 

列出信号量

 # ipcs –s 

列出共享内存

 # ipcs –m 

查看当前IPC使用情况

 [root@localhost sbin]# ipcs -u

------ Messages Status --------
allocated queues = 0
used headers = 0
used space = 0 bytes

------ Shared Memory Status --------
segments allocated 5
pages allocated 2784
pages resident 359
pages swapped   0
Swap performance: 0 attempts       0 successes

------ Semaphore Status --------
used arrays = 0
allocated semaphores = 0
[root@localhost sbin]# 

约平

ioping 是一个外部命令,可以从此处安装。实时监控磁盘 I/O 延迟非常有用。

结论

我希望上述命令对您系统管理工作中的各种情况有用。上述命令根据需要很有用。但是,如果您需要持续监控 Linux 服务器,则应该考虑使用服务器监控软件。

如果您想了解有关 Linux 性能的更多信息,请查看此Udemy 课程

《系统管理员应该知道的12条Linux性能命令》浅显易懂讲解!您必须观看的最佳 2 个视频

Linuxのtopコマンドとは【Linuxエンジニア初心者向け(LinuC資格対策)】
https://www.youtube.com/watch?v=0LAindz7LQE&pp=ygVj44K344K544OG44Og566h55CG6ICF44GM55-l44Gj 44Gm44GK44GP44G544GNIDEyIOOBriBMaW51eCDjg5Hjg5Xjgqnjg7zjg57jg7Pjgrkg44Kz44Oe44Oz44OJJmhsPUpB
Linuxディレクトリ構造を完全解説!
https://www.youtube.com/watch?v=bzqrlef15wI&pp=ygVj44K344K544OG44Og566h55CG6ICF44GM55-l44Gj 44Gm44GK44GP44G544GNIDEyIOOBriBMaW51eCDjg5Hjg5Xjgqnjg7zjg57jg7Pjgrkg44Kz44Oe44Oz44OJJmhsPUpB