4.2 常用的命令
4.2.1 全面了解系统资源情况——top
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用情况。
输入top命令后,如下所示:
top命令显示的前5行是统计信息,第一行是基本信息。
信息栏 | 含义 |
11:25:21 up 19:29 | 当前时间和系统运行时间,格式为时:分。这里表示已经运行了19小时29分 |
2 users | 当前登录用户数 |
load average:0.00,0.00,0.00 | 系统负载。三个数值分别为1分钟、5分钟、15分钟前到现在的平均值 |
第二行是任务的信息。
信息栏 | 含义 |
total | 进程总数 |
running | 正在运行的进程数 |
sleeping | 睡眠的进程数 |
stopped | 停止的进程数 |
zmobie | 僵尸进程数 |
第三行是CPU利用率的统计信息。
信息栏 | 含义 |
us | User Time,CPU执行用户进程百分比,包括Nice Time |
sy | System Time,CPU在内核运行百分比,包括IRQ百分比 |
ni | Nice Time,调整进程优先级所用百分比 |
id | Idle Time,系统空闲百分比 |
wa | Waiting Time,CPU等待I/O完成所用百分比 |
hi | Hard IRQ Time,硬中断占用的CPU时间百分比 |
si | Soft IRQ Time,软中断占用的CPU时间百分比 |
st | Steal Time,虚拟服务占用的CPU时间百分比 |
第四行是内存的使用信息。
信息栏 | 含义 |
total | 总物理内存 |
used | 已使用的物理内存 |
free | 空闲的物理内存 |
buffers | 缓冲的总量。存放准备写入磁盘的数据 |
cached | 缓存的总量。存放从磁盘中读取出来的数据 |
第五行是交换区的使用信息。
信息栏 | 含义 |
total | 交换区的总大小 |
used | 已使用交换区的总大小 |
free | 未使用交换区的总大小 |
什么是交换区(Swap)?
Linux的交换区是硬盘上的一块空间。在内存不足的情况下,操作系统先把内存中暂时不用的数据存到硬盘的交换区,腾出内存来让别的程序运行。
阿里云服务器上的Linux系统默认是没有设置Swap。由于开启Swap分区会导致硬盘I/O性能下降,因此初始状态未配置Swap,如果某些应用需要开启Swap分区,也可通过相应的命令开启。
top命令显示的第6行开始是进程统计信息区。
信息栏 | 含义 |
PID | 进程id |
USER | 进程所有者的用户名 |
PR | 优先级 |
NI | nice值。负值表示高优先级,正值表示低优先级 |
VIRI | 进程使用的虚拟内存总量,单位KB |
RES | 进程使用的、未被换出的物理内存大小,单位KB |
SHR | 共享内存大小,单位KB |
S | 进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程) |
%CPU | 上次更新到现在的CPU时间占用百分比 |
%MEM | 进程使用的物理内存百分比 |
TIME+ | 进程使用的CPU时间总计,单位1/100秒 |
COMMAND | 命令名/命令行 |
4.2.2 显示进程状态——ps
ps命令是显示当前系统中进程的状态,这个命令显示的只是运行ps命令瞬间的状态,如果需要显示不断更新的状态,可以使用“top -p 进程id”命令。
ps命令的常用参数如下。
- a:按用户名和启动时间的顺序来显示进程。
- u:显示所有用户的所有进程(包括其他用户)。
- x:显示无控制终端的进程。
# 显示所有的进程
ps -aux
# 只显示某个进程
ps axu|grep 进程名
通过ps,管道命令“|”和grep就能把输出中匹配进程名的行检索出来。
4.2.3 查看网络相关信息——netstat
查看服务器的网络连接情况,比如
- 查看某个端口是否开启。
- 查看某个端口是由哪个程序开启。
- 查看某个端口的连接数。
netstat命令的常用参数如下。
- -l:listen,监听的端口。
- -a:显示所有的Socket,包括正在监听。
- -n:显示数字格式的地址。
- -t:监听TCP的端口。
- -u:监听UDP的端口。
- -p:显示建立相关链接的程序名。
# 查看系统中启动的端口
netstat -lntup
# 查看系统中是否开启80端口
netstat -lntup|grep 80
# 查看系统中80端口的连接情况
netstat -ant|grep 80
4.2.4 查看某个进程打开的所有文件——lsof
lsof(list open files)是一个列出当前系统打开文件的工具。常用的参数如下。
- -p:进程id。
# 查看进程id打开的文件
lsof -p 进程id
4.2.5 跟踪数据到达主机所经路由——traceroute
4.2.6 文件下载/上传工具——“ssh secure shell client”和“lrzsz”
- “ssh secure shell client”是一个在Windows下通过ssh连接服务器的软件,其自带了文件的上传和下载功能。
- lrzsz
lrzsz软件包,在Linux里可代替FTP上传和下载。安装lrzsz只要执行命令:
yum -y install lrzsz
往Linux服务器上传文件,只需在目标文件夹下执行如下命令,然后ssh客户端弹出窗口让用户选择上传的文件。
rz
把Linux服务器的文件下载到本地,可执行如下命令,在ssh客户端弹出文件窗口让用户选择下载文件的保存路径。
sz 目标文件
4.2.7 查看程序的依赖库——LD_DEBUG
4.2.8 进程管理利器——supervisor
- 能自动启动配置好的进程,并监控每个进程的状态。
- 监控的进程如果因为各种原因闪退,能自动重启该进程。
安装supervisor命令:
yum install supervisor
其配置文件/etc/supervisord.conf。
为了更好地管理进程监控脚本,把进程监控脚本放在/etc/supervisord/conf.d/下。例如,为监控运行脚本/data/sendmail.sh,创建文件/etc/supervisord/conf.d/mail.conf。
来源:oschina
链接:https://my.oschina.net/u/2470917/blog/3035433