是否需要监控Linux服务器的性能?试试这些内置的命令和附加工具。大多数发行版都附带了大量的Linux监控工具,这些工具提供了可以用来获取系统活动信息的指标。你可以使用这些工具来查找性能问题的可能原因。下面讨论的命令是关于系统分析和调试Linux服务器问题的一些最基本的命令,例如:
1、找出系统的瓶颈
2、磁盘(存储)瓶颈
3、CPU和内存瓶颈
4、网络瓶颈。
01
top—进程活动监视命令
top命令显示Linux进程。它提供了一个运行系统的动态实时视图,即实际的流程活动。默认情况下,它显示在服务器上运行的cpu密集型任务,并每5秒钟更新一次列表。
图01:Linux top命令
常用热键和 top Linux监视工具
下面是一些有用的热键:
热键
使用
t
显示摘要信息
m
显示内存信息
A
对不同系统资源的顶级用户进行排序。能快速识别系统里的性能需求。
f
进入一个交互式配置屏幕。有助于为特定的任务置顶。
o
优先进行交互式地选择
r
发布renice命令。
k
问题终止命令。
z
打开或关闭color/mono
02
vmstat—虚拟内存统计
vmstat命令报告有关进程、内存、分页、阻塞IO、陷阱和cpu活动的信息。
示例输出:
显示内存使用的slab信息
获取关于活动/非活动内存页的信息。
03
w—找出谁在登录,他们在做什么
w命令显示当前机器上的用户及其进程的信息。
示例输出:
04
uptime—Linux系统运行了多长时间
可以使用uptime命令查看服务器运行了多长时间。当前时间,系统运行的时间,当前登录的用户数量,以及过去1、5和15分钟的系统负载平均值。
输出:
1可视为最优荷载值。负载可以从系统切换到系统。对于单个CPU系统,1 - 3和SMP系统6-10的负载值是可以接受的。
05
ps—显示Linux进程
ps命令将报告当前进程的快照。要选择所有进程,请使用A或E选项:
示例输出:
ps和top一样,但是提供了更多的信息。
显示长格式输出
打开额外的全模式(它将显示传递到过程的命令行参数):
显示线程(LWP和NLWP)
观察进程后的线程
在服务器上打印所有进程。
想要打印一个进程树?
#pstree
获取Linux进程的安全信息。
打印每一个作为用户Vivek运行的进程。
将ps命令以用户定义的格式配置输出。
尝试只显示Lighttpd的进程id。
或者
或者
打印PID 55977的名称。
10大内存消耗过程。
显示10个CPU消耗过程。
06
free—Linux服务器内存使用情况
free命令显示系统中空闲和使用的物理和交换内存的总量,以及内核使用的缓冲区。
示例输出:
07
iostat—Montor Linux
平均CPU负载和磁盘活动
iostat命令报告中央处理单元(CPU)统计数据和设备、分区和网络文件系统(NFS)的输入/输出统计数据。
示例输出:
08
sar – Monitor,
收集和报告Linux系统活动
sar命令用于收集、报告和保存系统活动信息。要查看网络计数器,请输入:
网络计数器的第24个
还可以使用sar显示实时使用情况:
示例输出:
09
mpstat —监控Linux上的多处
处理器使用情况
mpstat命令显示每个可用处理器的活动,处理器0是第一个。mpstat -P显示每个处理器平均CPU利用率:
示例输出
10
pmap—Montor在Linux上
处理内存使用
pmap命令报告内存映射的一个过程。使用此命令找出内存瓶颈的原因。
要显示pid # 47394的进程内存信息,请输入:
示例输出:
最后一行非常重要:
mapped:933712K总内存映射到文件。
writeable/private:4304K私人地址空间的数量。
shared:768000K这个进程与其他进程共享的地址空间量。
11
netstat—Linux网络和统计监控工具
netstat命令显示网络连接、路由表、接口统计信息、化装连接和多播成员。
12
ss—网络统计
ss命令用于转储套接字统计信息。它允许显示类似于netstat的信息。请注意,netstat几乎是过时的。因此,您需要使用ss命令。对Linux上的所有TCP和UDP套接字:
或者
显示所有的TCP套接字与SELinux的安全上下文的过程:
13
iptraf—获取Linux上的
实时网络统计信息
iptraf命令是交互式彩色IP网络监视器。它是一个基于ncurses的IP LAN监视器,它生成各种网络统计信息,包括TCP info、UDP计数、ICMP和OSPF信息、以太网负载信息、节点统计信息、IP校验和错误等。它可以提供以下易于读取格式信息:
1、通过TCP连接进行网络流量统计。
2、IP流量统计的网络接口。
3、按协议进行网络流量统计。
4、通过TCP/UDP端口和数据包大小的网络流量统计。
5、通过Layer2地址进行网络流量统计
图02:通用接口统计:网络接口的IP流量统计
图03:TCP连接的网络流量统计
14
tcpdump—详细的网络流量分析
tcpdump命令是简单的命令,可以在网络上转储流量。但是,你需要很好的理解TCP/IP协议来使用这个工具。For.e。g显示DNS的交通信息,输入:
从端口80查看所有IPv4 HTTP包,即只打印包含数据的数据包,例如,SYN和FIN包和ackonly包,输入:
显示所有FTP会话到202.54.1.5,输入:
将所有HTTP会话打印到192.168.1.5:
使用wireshark查看有关文件的详细信息,输入:
15
iotop—Linux I/O监视器
iotop命令监视器,I/O使用信息,使用Linux内核。它显示了在服务器上按进程或线程排序的当前I/O使用的表。
示例输出:
16
htop—交互式过程查看器
htop是一个免费的、开放源码的Linux进程查看器。它比top命令好得多。非常容易使用。您可以选择不使用它们的pid或离开htop接口的进程来杀死或重新使用它们。
示例输出:
17
atop—高级Linux系统和进程监视器
atop是一个非常强大的交互式监视器,可以查看Linux系统上的负载。它从性能的角度显示最关键的硬件资源。您可以快速地看到CPU、内存、磁盘和网络性能。它显示了哪些进程负责处理进程级别上的CPU和内存负载。
18
ac and lastcomm
你必须监视Linux服务器上的进程和登录活动。psacct或acct包包含几个用于监视过程活动的实用程序,包括:
ac命令:显示用户连接时间的统计信息。
lastcomm命令:显示有关先前执行的命令的信息。
accton命令:将进程计算开或关闭
sa命令:汇总会计信息。
19
monit—流程监督
Monit是一种免费和开源的软件,它可以作为过程监督。它提供了重启失败的服务的能力。您可以使用Systemd、daemontools或任何其他此类工具来实现相同的目的。
20
nethogs——找出在Linux上
使用大多数带宽的pid
NetHogs是一款小巧但方便的网络顶级工具。它通过进程名称(如Firefox、wget等)对带宽进行分组。如果网络流量突然激增,那就启动NetHogs。
21
iftop—显示主机
接口上的带宽使用情况
iftop命令在给定的接口名称(如eth0)上侦听网络通信。
22
vnstat—基于consol
的网络流量监视器
vnstat很容易在Linux上使用基于console的网络流量监视器。它为选定的接口保持每小时、每日和每月的网络流量。
23
nmon—Linux系统管理员,
tuner,基准工具
nmon是一个Linux系统管理员的终极工具。它可以显示CPU、内存、网络、磁盘、文件系统、NFS、顶级进程资源和cli中的分区信息。
24
glances—注意Linux系统
glances是一个开源的跨平台监控工具。它在小屏幕上提供了大量的信息。它还可以在客户机/服务器模式下工作。
25
strace—在Linux上调用电控系统
尝试strace命令。这对于调试web服务器和其他服务器问题很有用
26
/proc/ file system—
各种Linux内核统计数据
proc文件系统提供有关各种硬件设备和其他Linux内核信息的详细信息。常见的/ proc的例子:
27
Nagios—Linux服务器/网络监控
Nagios是一个流行的开源计算机系统和网络监控应用软件。您可以轻松地监视所有主机、网络设备和服务。当事情出错时,它可以发出警报,当情况好转时再发出警报。FAN是“完全自动化的Nagios”。FAN目标是提供Nagios安装,包括Nagios社区提供的大部分工具。FAN提供了标准ISO格式的CDRom映像,使它易于安装Nagios服务器。除此之外,还有大量的工具,包括分发,以改善Nagios周围的用户体验。
28
Cacti—基于web的Linux监控工具
Cacti是一个完整的网络图形解决方案,旨在利用RRDTool的数据存储和绘图功能。Cacti提供了一个快速轮询器、高级图形模板、多个数据获取方法和用户管理功能。所有这些都是用一种直观的、易于使用的界面包装起来的,这种界面对于有数百种设备的复杂网络来说是有意义的。它可以提供有关网络、CPU、内存、登录用户、Apache、DNS服务器等的数据。
29
KDE System Guard—
实时Linux系统报告和绘图
KSysguard是一个用于KDE桌面的网络支持任务和系统监视应用程序。该工具可以在ssh会话上运行。它提供了很多功能,比如客户机/服务器架构能够监控本地和远程主机。图形前端使用所谓的传感器来检索它显示的信息。传感器可以返回简单的值或更复杂的信息,如表。对于每种类型的信息,都提供一个或多个显示器。显示是在工作表中组织的,这些工作表可以相互独立地保存和加载。因此,KSysguard不仅是一个简单的任务管理器,而且是控制大型服务器集群的强大工具。
图05:KDE系统保护图:维基百科
30
Gnome Linux系统监控
图06:Gnome系统应用程序
系统监视器应用程序能够显示基本的系统信息和监视系统进程、系统资源的使用和文件系统。您还可以使用系统监视器来修改系统的行为。虽然没有KDE系统保护功能强大,但它提供了一些可能对新用户有用的基本信息:
(1)显示有关计算机硬件和软件的各种基本信息。
(2)Linux内核版本
(3)GNOME版本
(4)硬件
(5)安装的存储器
(6)处理器速度
(7)系统状态
(8)目前可用的磁盘空间
(9)流程
(10)内存和交换空间
(11)网络使用情况
(12)文件系统
(13)列出所有挂载的文件系统以及关于每个文件的基本信息。
作者: Vivek Gite