目录

Life in Flow

知不知,尚矣;不知知,病矣。
不知不知,殆矣。

X

Linux状态查看

CPU 使用情况

第一行

内 容 说 明
10:12:28 系统当前时间
up 13:05 系统的运行时间.本机己经运行 13 小时 05 分钟
3 users 当前登录了三个用户
load average: 0.00,0.01,0.05 系统在之前 1 分钟、5 分钟、15 分钟的平均负载。如果 CPU 是单核的,则这个数值超过 1 就是高负载:如果 CPU 是四核的,则这个数值超过 4 就是高负载

第二行

Tasks: 230 total 系统中的进程总数
1 running 正在运行的进程数
229 sleeping 睡眠的进程数
0 stopped 正在停止的进程数
0 zombie 僵尸进程数。如果不是 0,则需要手工检查僵尸进程

第三行

内 容 说 明
Cpu(s): 0.1 %us 用户模式占用的 CPU 百分比
0.1%sy 系统模式占用的 CPU 百分比
0.0%ni 改变过优先级的用户进程占用的 CPU 百分比
99.7%id idle 缩写,空闲 CPU 占用的 CPU 百分比
0.1%wa 等待输入/输出的进程占用的 CPU 百分比
0.0%hi 硬中断请求服务占用的 CPU 百分比
0.1%si 软中断请求服务占用的 CPU 百分比
0.0%st st(steal time)意为虚拟时间百分比,就是当有虚拟机时,虚拟 CPU 等待实际 CPU 的时间百分比

如果我的机器有 4 核 CPU,我想查看每一核心分别的负载情况怎能办?

答:交换快捷键 “1”

第四行

内 容 说 明
Mem: 1863252 total 物理内存的总量,单位为 KB
829960 used 己经使用的物理内存数量
68352 free 空闲的物理内存数量。我们使用的是虚拟机,共分配了 628MB 内存,所以只有 53MB 的空闲内存
96490 buff/cache 作为缓冲的内存数量

第五行

内 容 说 明
Swap: 2097148 total 交换分区(虚拟内存)的总大小
3336 used 已经使用的交换分区的大小
2093812 free 空闲交换分区的大小
622420 avail Mem 可用内存

通过 top 命令的整体信息部分,就可以判断服务器的健康状态。如果 1 分钟、5 分钟、15 分钟的平均负载高于 CPU 核数,说明系统压力较大。

如果物理内存的空闲内存过小,则也证明系统压力较大

进程信息

PID 进程的 ID。
USER 该进程所属的用户。
PR 优先级,数值越小优先级越高。
NI 优先级,数值越小优先级越高。
VIRT 该进程使用的虚拟内存的大小,单位为 KB。
RES 该进程使用的物理内存的大小,单位为 KB。
SHR 共享内存大小,单位为 KB。计算一个进程实际使用的内存 = 常驻内存(RES)- 共享内存(SHR)
S 进程状态。其中 S 表示睡眠,R 表示运行
%CPU 该进程占用 CPU 的百分比。
%MEM 该进程占用内存的百分比。
TIME+ 该进程共占用的 CPU 时间。
COMMAND 进程名

查看内存

1关于此available,即系统可用内存,用户不需要去计算buffer/cache,即可以看到还有多少内存可用,更加简单直观
2free -m	 
3
4              total        used        free      shared  buff/cache   available
5Mem:            990         524          76           0         389         309
6Swap:             0           0           0
7

查看磁盘空间

1df -h
Filesystem 磁盘名称
Size 总大小
Used 被使用的大小
Avail 剩余大小
Use% 使用百分比
Mounted on 挂载路径(相当于 Windows 的磁盘符)

查看进程

1SysV风格
2ps -ef
3
4BSD风格
5ps aux
UID 该进程执行的用户 ID
PID 进程 ID
PPID 该进程的父级进程 ID,如果找不到,则该进程就被称之为僵尸进程(Parent Process ID)
C CPU 的占用率,其形式是百分数
STIME 进程的启动时间
TTY 终端设备,发起该进程的设备识别符号,如果显示“?”则表示该进程并不是由终端设备发起
TIME 进程实际使用 CPU 的时间
CMD 该进程的名称或者对应的路径

USER:该 process 属于哪个使用者账号
PID :该 process 的 ID
%CPU:该 process 使用掉的 CPU 资源百分比
%MEM:该 process 所占用的物理内存百分比
VSZ :该 process 使用掉的虚拟内存量 (Kbytes)
RSS :该 process 占用的固定的内存量 (Kbytes)
TTY :该 process 是在那个终端机上面运作,若与终端机无关,则显示 ?,另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。
STAT:该程序目前的状态,主要的状态有
** R :该程序目前正在运作,或者是可被运作**
** S :该程序目前正在睡眠当中 (可说是 idle 状态),但可被某些讯号 (signal) 唤醒。**
** T :该程序目前正在侦测或者是停止了**
** Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态**
START:该 process 被触发启动的时间
TIME :该 process 实际使用 CPU 运作的时间
COMMAND:该程序的实际指令

查看网络连接状态

 1语法:netstat   -tnlp
 2
 3选项:-t:表示只列出tcp 协议的连接;
 4
 5	   -n:表示将地址从字母组合转化成ip 地址,将协议转化成端口号来显示;
 6
 7	   -l :表示过滤出"state(状态)"列中其值为LISTEN(监听)的连接;
 8
 9	   -p:表示显示发起连接的进程pid 和进程名称;
10
11

Protocol:协议(tcp、upd、http、https、icmp、SSH…)
Receive:接收
Send:发送
Local Address:本地地址
Foreign:远程地址
State:状态,LISTEN 表示侦听来自远方的 TCP 端口的连接请求
PID/Program name:进程 ID 和程序名

关闭进程

信号编号 含义
9 杀死进程,即强制结束进程。
15 正常结束进程,是 kill 命令的默认信号。
 1用法一:kill [信号编号] PID
 2示例代码:
 3#ps -ef |grep crond
 4查询crond进程信息,想知道它的PID,以便使用kill终止进程
 5
 6#kill 6925
 7结束6925的进程,这里使用默认信号,正常结束,如果强制结束,就是kill -9 6925
 8
 9#ps -ef |grep crond
10查询crond进程信息,这次查询是为了确认crond进程是否被终止了,我们发现6925进程已经没有了
11
12#systemctl start crond
13使用前面学过的systemctl命令,重启crond服务
14
15#ps -ef |grep crond
16查询crond进程信息,这次查询是为了确认crond进程已经重新启动了,我们看到多了一个32934的进程,表明crond已经启动,并且进程ID变化了,这是一个新的进程

根据进程名称杀死一类进程

1killall httpd
2killall crond

进程优先级

1步骤1:运行top命令,按r,会提示输入希望修改优先级的进程的PID,这里输入6451,表示想修改firewalld进程的优先级
2
3步骤2:输入6451后回车,提示希望修改的具体数字,这个数字是从-20到19,这里输入5,数字越大,优先级别越低,所以,这里是降低了firewalld的优先级
4
5步骤3:输入5后,按回车,会发现6451进程的NI, 从0变成了5,PR从20变成了25
6

作者:Soulboy