如果你想知道你的服务器在做什么,你需要知道一些基本的命令。一旦掌握了这些命令,您就是一名专业的Linux系统管理员。iostatOstat主要用于监控系统设备的IO负载。当iostat第一
如果你想知道你的服务器在做什么,你需要知道一些基本的命令。一旦掌握了这些命令,您就是一名专业的Linux系统管理员。
iostat
Ostat主要用于监控系统设备的IO负载。当iostat第一次运行时,它会显示自系统启动以来的各种统计信息,然后运行iostat会显示自上次运行该命令以来的统计信息。用户可以通过指定统计的次数和时间来获取所需的统计信息。
#语法:iostat [ -c ] [ -d ] [ -h ] [ -N ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -z ] [ device [...] | ALL ] [ -p [ device [,...] | ALL ] ] [ interval [ count ] ] #一般常用: -x 参数:该选项将用于显示和io相关的扩展数据 -c 参数:用来获取cpu部分状态值iostat -d -k 1 10 #查看TPS和吞吐量信息(磁盘读写速度单位为KB)iostat -d -m 2 #查看TPS和吞吐量信息(磁盘读写速度单位为MB)iostat -d -x -k 1 10 #查看设备使用率(%util)、响应时间(await) iostat -c 1 10 #查看cpu状态iostat -c 1 10 #获取cpu部分状态值
meminfo
使用cat和grep命令显示meminfo信息。
cat /proc/meminfo
自由的
使用动态显示内存使用信息
free
mpstat
查看所有CPU的平均健康信息,可以查看特定CPU的信息。
mpstat
netstat
Netstat是一个命令行工具,它告诉我们系统中所有tcp/udp/unix套接字连接的状态。
netstat -a #使用a 选项可以列出系统中的所有连接netstat -at #使用 t选项只列出 tcp 连接netstat -au #类似的,使用u 选项只列出udp 连接netstat -ax #使用 x 选项只列出 Unix socket 连接netstat -ap #使用 p选项可以在列出连接的同时也显示 PID 或者进程名称,而且它还能与其他选项连用netstat -an #使用 n 选项可以加快输出,它不会执行任何反向查询(LCTT 译注:这里原文有误),而是直接输出数字。 由于无需查询,因此结果输出会快很多netstat -l #使用l 选项只输出监听端口。它不能与 a 选项连用,因为 a 会输出所有端口,netstat -s #使用 s 选项输出每个协议的统计信息,包括接收/发送的包数量netstat -i #使用 I 选项只显示网卡的统计信息netstat -g #使用g 选项输出 IPV4以及IPV6 的多播组信息netstat -r #使用 r 输出网络路由信息netstat -c #使用 c 选项持续输出结果netstat -anp | grep 3306 #与grep 连用来过滤出某个端口的连接netstat -anp | grep 3306 | wc -l #通过与wc 和 grep 命令连用,可以统计指定端口的连接数量
nmon
Nmon可以轻松监控系统的CPU、内存、网络、硬盘、文件系统、NFS、高消耗进程、资源以及IBM Power system的微分区信息。
要运行nmon,可以在命令行上启动它,然后选择要监视的子系统。这些子系统应该有快捷键,比如输入C查看CPU信息,M查看内存,D查看磁盘信息等。您还可以使用-f命令将nmon的执行结果保存到一个CSV文件中,以供以后分析。
pmap
pmap命令用于报告每个进程内存占用的详细信息,并可用于查看是否有任何进程超支。该命令需要进程id作为参数。
使用
#pmap [ -x | -d ] [ -q ] pids...pmap -V#选项含义-x extended Show the extended format. 显示扩展格式-d device Show the deviceformat. 显示设备格式-q quiet Do not display some header/footerlines. 不显示头尾行-V show version Displays version of program. 显示版本pmap -d 1
著名图象处理软件
Ps告诉你每个进程占用的内存和CPU处理时间。
#命令参数:a 显示所有进程-a 显示同一终端下的所有程序-A 显示所有进程c 显示进程的真实名称-N 反向选择-e 等于“-A”e 显示环境变量f 显示程序间的关系-H 显示树状结构r 显示当前终端的进程T 显示当前终端的所有程序u 指定用户的所有进程-au 显示较详细的资讯-aux 显示所有包含其他使用者的行程 -C<命令> 列出指定命令的状况--lines<行数> 每页显示的行数--width<字符数> 每页显示的字符数--help 显示帮助信息--version 显示版本显示
pstree
pstree显示的信息没有那么详细,但是它以树形结构显示了流程之间的依赖关系,包括子流程的信息。一旦你发现一个进程有问题,你可以使用kill来杀死它。
特别行政区
Sar程序是系统监控工具中的瑞士军刀。该程序包含三个工具:sar用于显示数据,sa1和sa2用于收集和保存数据。Sar可用于显示CPU利用率、内存页面数据、网络I/O和传输统计数据、进程创建活动和磁盘设备活动详细信息。sar和nmon最大的区别是sar更适合长期监控,而nmon可以让你快速了解系统的当前状态。
斯特拉斯
Strace通常被认为是程序员调试的工具,但它不仅仅如此。它可以记录进程进行的系统调用的细节,因此它也是一个非常好的诊断工具。例如,您可以使用它来发现一个程序正在打开一个配置文件。
strace最简单的用法是执行一个指定的命令,它会在指定的命令结束后退出。在命令执行过程中,strace将记录并分析命令进程的所有系统调用以及该进程接收到的所有信号值。
Strace也有一个缺陷,但是在跟踪的时候会让一个进程的性能很差,所以请谨慎使用。
tcpdump
数据包分析工具,根据用户的定义拦截网络上的数据包。
Tcpdump可以完全拦截网络中传输的数据包的“报头”并提供分析。它支持对网络层、协议、主机、网络或端口进行过滤,并提供and、or和not等逻辑语句来帮助你摆脱无用信息。
您可以指定由主机、端口或用户发送的数据包。
tcpdump tcp port 23 and host 210.27.48.1tcpdump -i eth0 dst host hostnametcpdump host sundown
顶端
Top command是Linux下常用的性能分析工具,可以实时显示系统中各个进程的资源占用状态,类似于Windows的任务管理器。
用法:
#top [-] [d] [p] [q] [c] [C] [S] [s] [n]参数说明:d:指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。p:通过指定监控进程ID来仅仅监控某个进程的状态。q:该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。S:指定累计模式。s:使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。i:使top不显示任何闲置或者僵死进程。c:显示整个命令行而不只是显示命令名。常用命令说明:Ctrl+L:擦除并且重写屏幕K:终止一个进程。系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽。i:忽略闲置和僵死进程。这是一个开关式命令。q:退出程序r:重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10。S:切换到累计模式。s:改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s。如果有小数,就换算成m s。输入0值则系统将不断刷新,默认值是5 s。需要注意的是如果设置太小的时间,很可能会引起不断刷新,从而根本来不及看清显示的情况,而且系统负载也会大大增加。f或者F:从当前显示中添加或者删除项目。o或者O:改变显示项目的顺序l:切换显示平均负载和启动时间信息。m:切换显示内存信息。t:切换显示进程和CPU状态信息。c:切换显示命令名称和完整命令行。M:根据驻留内存大小进行排序。P:根据CPU使用百分比大小进行排序。T:根据时间/累计时间进行排序。W:将当前设置写入~/.toprc文件中。
正常运行时间
#uptime10:01:30 up 8 days, 11 min, 2 users, load average: 0.01, 0.09, 0.16当前服务器时间: 10:01:30当前服务器运行时长 11 min当前用户数 2 users当前的负载均衡 load average 0.01, 0.09, 0.16,分别取1min,5min,15min的均值
vmstat
Vmstat是虚拟内存统计的缩写,可以监控操作系统的虚拟内存、进程和CPU活动。它统计了系统的整体情况,缺点是不能深入分析某个过程。
Wireshark
它主要用于捕获网络中的数据,并向用户提供有关网络和上层协议的各种信息。
Wireshark以前被称为Ethereal(现在仍然经常被称为Ethereal),是tcpdump的一个类似工具,但是它更高级,并且具有更高级的协议分析和报告功能。Wireshark同时具有GUI界面和shell界面。如果从事专业网管的话,只能用ethereal。