Linux进程监控管理

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的进程

注:杀死的进程可以通过重新加载进程命令恢复

  • 10
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值