《App后台开发运维与架构实践》第4章 Linux系统

一世执手 提交于 2019-12-10 11:09:07

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利用率的统计信息。

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。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!