关键词

管理Linux系统资源的高阶技巧

一、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

本文链接:http://task.lmcjl.com/news/1623.html

展开阅读全文