1))查看内存使用情况
free -h:以更易读的格式显示系统的内存使用情况,包括物理内存和交换内存的使用情况
-h:可以让输出结果更友好,即以更易读的格式(如KB、MB、GB)显示。
输出结果:
Mem:表示物理内存
Swap:交换内存
2))监控系统状态
top
输出结果:
例如:0.0 us:表示用户使用百分比(越小越好)
0.0 sy:系统使用的百分比(越小越好)
88.7 id:空闲时间百分比(越大越好)
KiB Mem:表示物理内存的使用情况,包括总内存、已使用内存、空闲内存等信息。这是衡量系统当前内存使用状况的重要指标之一。
KiB Swap:表示交换空间的使用情况,即虚拟内存的使用情况。当物理内存不足时,系统会使用交换空间来存储不活跃的数据,以释放物理内存供当前活跃进程使用。
3))系统资源监控
vmstat 2 3:提供关于CPU活动、内存、进程和I/O等方面的信息,每2秒更新一次系统状态信息,总共更新3次
输出结果解释:
procs:
r:等待执行的任务数量,展示了正在执行和等待CPU资源的任务个数,当这个值超过CPU个数,会出现CPU瓶颈
b:等待I/O的进程数量
memory:
swpd:正在使用虚拟内存的大小(单位KB)
free:空闲内存大小
buff:已使用缓存的大小(对块设备的读写进行缓冲)
cache:已用的缓存大小(文件系统的缓存)
swap:
si:每秒从交换区写入内存的大小(单位kb/s)
so:每秒从内存写到交换区的大小
io:
bi:每秒读取的块数(读磁盘),块设备每秒接收的块数量,单位是block,这里的块设备指系统上所有的磁盘和其他块设备,目前Linux版本的块大小为1024B
bo:每秒写入的块数(写磁盘),块设备每秒发送的块数量,单位是block
system:
in:每秒中断数,数越大,会看到由内核消耗的cpu时间sy会越多
cs:每秒上下切换数,值越大,会看到由内核消耗的cpu时间sy会越多
cpu:
us:用户进程执行消耗cpu时间(user time),us值越大,说明用户进程消耗的CPU时间越多,一般超过50%时,考虑优化程序
sy:系统进程消耗cpu时间(ststem time),sy的值越大,说明系统内核消耗的cpu资源多,us+sy参考值80%,若大于80%s,则说明cpu不足
id:空闲时间(包括I/O等待时间),正常情况下us+sy+id=100
wa:等待I/O时间,wa过高时,说明I/O等待严重,可能是由于磁盘大量随机访问造成的
st:虚拟机指标
4))查看系统所有进程
ps -aux:用于显示系统中所有进程的详细信息,包括进程ID、所属用户、CPU和内存使用情况等。
a:显示所有用户的进程,包括其他用户的进程。
u:以用户为基础显示详细信息,包括用户名、进程ID、CPU利用率、内存使用等。
x:显示没有控制终端的进程。
输出参数显示:
USER:进程所属的用户。
PID:进程的ID。
%CPU:进程使用的CPU百分比。
%MEM:进程使用的内存百分比。
VSZ:进程使用的虚拟内存大小(单位:KB)。
RSS:进程使用的物理内存大小(单位:KB)。
TTY:进程所连接的终端设备。
STAT:进程状态。
START:进程启动时间。
TIME:进程占用CPU的累计时间。
COMMAND:进程的命令行。
拓展:
可以使用ps aux --sort=-%cpu来按照CPU使用率降序排列进程,或者使用ps aux | grep <process_name>来过滤并查看特定进程的信息。
5))查看[SSHD]服务进程
ps -aux |grep sshd
例如:
ps -aux | grep sshd | grep -v grep | wc -l
grep -v grep表示排除含有 grep 命令本身的行
wc -l 命令来计算行数
这段命令意思就是:输出当前除了grep 命令本身,运行的 sshd 进程的数量
6))统计[SSHD]服务进程
ps -aux | grep -c sshd
ps -aux 会列出系统中所有的进程信息。
grep sshd 会从 ps 命令的输出中搜索包含 "sshd" 的行。
-c 参数会让 grep 命令只输出匹配行的计数。
拓展:
shell语句:
#!/bin/bash
SSHD_COUNT=$(ps -aux | grep -c sshd)
echo "Number of running sshd processes: $SSHD_COUNT"
这个脚本会输出当前正在运行的 sshd 进程的数量。
#!/bin/bash
ps -aux | grep -q sshd
if [ $? -eq 0 ]; then
echo "sshd is running."
else
echo "sshd is not running."
fi
这个脚本会输出 sshd 是否正在运行的信息。
7))列出所有监听端口
netstat -anltp
参数说明:
-a 或 --all:显示所有连线中的Socket。
-n:直接使用IP地址,而不通过域名服务器。
-l:显示监听中服务器的Socket。
-t:显示TCP传输协议的链接情况。
-p:显示正在使用Socket的程序名。
拓展:
netstat -anltp | grep 3306
显示哪些服务正在使用端口3306
8))重新加载进程
kill -HUB 1014(或者kill -1 1014)(其中1是数字)
重新加载PID为1014的进程
9))正常停止进程
kill -TERM 1014
kill -15 1014
正常停止PID为1014的进程
10))彻底杀死进程
kill -9 1014
kill -KILL 1014
彻底杀死PID为1014的进程
注:杀死的进程可以通过重新加载进程命令恢复