一、CPU资源管理
1. 查看CPU使用情况
top
# 输出结果示例
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
2. 实时监测CPU的使用情况
sar -u 1
# 输出结果示例
Linux 5.4.0-54-generic (hostname) 01/01/2021 _x86_64_ (2 CPU)
02:55:06 PM CPU %user %nice %system %iowait %steal %idle
02:55:07 PM all 3.02 0.00 1.25 0.00 0.00 95.73
3. 限制进程的CPU使用率
cpulimit -l 50 -p <进程ID>
# 示例:限制进程1328的CPU使用率为50%
cpulimit -l 50 -p 1328
二、内存资源管理
1. 查看内存使用情况
free -h
# 输出结果示例
total used free shared buff/cache available
Mem: 15G 5.0G 8.6G 188M 1.5G 9.8G
Swap: 2.0G 4.4M 2.0G
2. 查看每个进程的内存占用情况
ps -aux --sort=-%mem | head
# 输出结果示例
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 3462 0.0 14.9 1809948 247344 ? Sl Jan07 0:08 /usr/bin/dockerd ...
user 754 1.0 10.3 1420724 170128 ? Sl Jan07 15:18 code ...
3. 根据内存使用情况杀死进程
ps -aux --sort=-%mem | awk '{if($4>10.0) print $0 }' | awk '{print $2}' | xargs kill -9
# 解释
# ps -aux --sort=-%mem:查看当前进程按照内存占用率排序后的情况
# awk '{if($4>10.0) print $0 }':筛选出内存占用率超过10%的进程
# awk '{print $2}':选取进程ID
# xargs kill -9:结束进程
三、磁盘资源管理
1. 查看磁盘占用情况
df -h
# 输出结果示例
Filesystem Size Used Avail Use% Mounted on
udev 7.8G 0 7.8G 0% /dev
tmpfs 1.6G 1.6M 1.6G 1% /run
/dev/nvme0n1p2 917G 580G 290G 67% /
tmpfs 7.9G 76M 7.8G 1% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup
/dev/nvme0n1p1 511M 7.7M 503M 2% /boot/efi
2. 查看目录下占用空间最大的文件
du -hsx * | sort -rh | head
# 输出结果示例
2.0G data.tar.gz
1.2G video.mp4
615M image.png
3. 清理日志文件
find /var/log -type f -name "*.log" | xargs rm -f
# 解释
# find /var/log -type f -name "*.log":搜索/var/log目录下所有的.log文件
# xargs rm -f:删除搜索结果
四、网络资源管理
1. 查看当前网络连接状况
netstat -an | grep ESTABLISHED | wc -l
# 输出结果示例
67
2. 查看网络连接占用情况
ss -s
# 输出结果示例
Total: 60 (kernel 62)
TCP: 55 (estab 10, closed 43, orphaned 0, synrecv 0, timewait 40/0), ports 0
# 解释:TCP:55代表当前TCP连接数为55个,其中有10个为已建立连接
3. 限制应用程序的网络带宽
tc qdisc add dev eth0 root tbf rate 1mbit burst 32kbit latency 400ms
# 解释:
# eth0代表要限制网络带宽的网络接口
# 1mbit代表限制的带宽为1Mbit/s
# burst 32kbit代表网络接口允许快速传输32Kb的数据
# latency 400ms代表网络包发送的延迟不超过400ms