目录

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%ididle缩写,空闲 CPU 占用的 CPU 百分比
0.1%wa等待输入/输出的进程占用的 CPU 百分比
0.0%hi硬中断请求服务占用的 CPU 百分比
0.1%si软中断请求服务占用的 CPU 百分比
0.0%stst(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进程名

查看内存

关于此available,即系统可用内存,用户不需要去计算buffer/cache,即可以看到还有多少内存可用,更加简单直观
free -m	 

              total        used        free      shared  buff/cache   available
Mem:            990         524          76           0         389         309
Swap:             0           0           0

查看磁盘空间

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

查看进程

SysV风格
ps -ef

BSD风格
ps aux
UID该进程执行的用户ID
PID进程ID
PPID该进程的父级进程ID,如果找不到,则该进程就被称之为僵尸进程(Parent Process ID)
CCpu的占用率,其形式是百分数
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:该程序的实际指令

查看网络连接状态

语法:netstat   -tnlp

选项:-t:表示只列出tcp 协议的连接;

	   -n:表示将地址从字母组合转化成ip 地址,将协议转化成端口号来显示;

	   -l :表示过滤出"state(状态)"列中其值为LISTEN(监听)的连接;

	   -p:表示显示发起连接的进程pid 和进程名称;


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

关闭进程

信号编号含义
9杀死进程,即强制结束进程。
15正常结束进程,是 kill 命令的默认信号。
用法一:kill [信号编号] PID
示例代码:
#ps -ef |grep crond
查询crond进程信息,想知道它的PID,以便使用kill终止进程

#kill 6925
结束6925的进程,这里使用默认信号,正常结束,如果强制结束,就是kill -9 6925

#ps -ef |grep crond
查询crond进程信息,这次查询是为了确认crond进程是否被终止了,我们发现6925进程已经没有了

#systemctl start crond
使用前面学过的systemctl命令,重启crond服务

#ps -ef |grep crond
查询crond进程信息,这次查询是为了确认crond进程已经重新启动了,我们看到多了一个32934的进程,表明crond已经启动,并且进程ID变化了,这是一个新的进程

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

killall httpd
killall crond

进程优先级

步骤1:运行top命令,按r,会提示输入希望修改优先级的进程的PID,这里输入6451,表示想修改firewalld进程的优先级

步骤2:输入6451后回车,提示希望修改的具体数字,这个数字是从-20到19,这里输入5,数字越大,优先级别越低,所以,这里是降低了firewalld的优先级

步骤3:输入5后,按回车,会发现6451进程的NI, 从0变成了5,PR从20变成了25


作者:Soulboy