首页 帮助中心 常见问题 Linux进程资源使用监控和限制的具体方法
Linux进程资源使用监控和限制的具体方法
时间 : 2024-12-05 11:08:39 编辑 : 华纳云 阅读量 : 344

Linux系统中,监控资源的使用情况并根据每个用户设置进程限制属于常见操作,可以通过ps、top、htop等工具来完成监控。配和ulimit和cgroups进行资源限制来实现该目标。

监控进程资源的使用可以用ps,ps命令可以列出系统上的进程及其资源使用情况:

ps aux --sort=-%mem

以上命令可以按内存使用量排序列出全部进程。还可以使用top命令来实时显示系统的进程信息:

top

top监控界面中可以按照%CPU或%MEN列排序,按u能过滤特定用户进程。

使用htop命令也可以实现监控,其具有交互式界面:

sudo dnf install htop  # 安装 htop
htop

在htop中可以按F6键进行排序,按u键来选择特定用户。

用ulimit命令设置shell会话的资源限制,这些限制应用于用户的全部进程。在用户Shell配置文件中进行设置,编辑用户的 .bashrc 或 .bash_profile 文件并添加以下行:

# 限制最大打开文件数
ulimit -n 1024
# 限制最大进程数
ulimit -u 100

/etc/security/limits.conf 文件用于设置系统范围内的用户或组的资源限制。

编辑 /etc/security/limits.conf 文件,添加以下行:# 用户 user 的限制

user    hard    nproc   100
user    soft    nproc   50
user    hard    nofile  1024
user    soft    nofile  512
# 用户组 admin 的限制
@admin  hard    nproc   200
@admin  soft    nproc   100
@admin  hard    nofile  2048
@admin  soft    nofile  1024

使用cgroups,它提供了强大方法来限制、优先级划分和隔离进程资源。安装:

sudo dnf install -y libcgroup-tools

创建并配置cgroups:

# 创建 cgroup 目录
sudo mkdir /sys/fs/cgroup/cpu/mygroup
sudo mkdir /sys/fs/cgroup/memory/mygroup
# 设置 CPU 使用限制
echo 50000 | sudo tee /sys/fs/cgroup/cpu/mygroup/cpu.cfs_quota_us
echo 100000 | sudo tee /sys/fs/cgroup/cpu/mygroup/cpu.cfs_period_us
# 设置内存使用限制
echo 500M | sudo tee /sys/fs/cgroup/memory/mygroup/memory.limit_in_bytes
将用户进程加入cgroup:
#!/bin/bash
# 获取用户的所有进程 PID
USER_PROCESSES=$(pgrep -u user)
# 将每个进程加入 cgroup
for PID in $USER_PROCESSES; do
echo $PID | sudo tee /sys/fs/cgroup/cpu/mygroup/cgroup.procs
echo $PID | sudo tee /sys/fs/cgroup/memory/mygroup/cgroup.procs
done

把这个脚本保存为add_to_cgroup.sh 并赋予执行权限:

chmod +x add_to_cgroup.sh

可以创建一个定时任务,定期运行上述脚本来保证新进程被添加到cgroup。编辑cgroup:

crontab -e

添加以下命令行,保证每分钟运行一次脚本:

* * * * * /path/to/add_to_cgroup.sh

以上就是关于Linux监控资源进程使用,并根据不同用户设置进程限制的常用方法。这些方法可以结合使用,ps, top, htop, ulimit, /etc/security/limits.conf 和 cgroups,可以实现对系统资源的有效管理和控制。更多内容关注华纳云

华纳云 推荐文章
Linux bmon命令常用方法的分享 宝塔Linux面板的功能、支持系统及安装指南 Linux中ifconfig命令详解与实战指南 Linux mknod 命令的使用示例与详解 2025年最适合学生使用的Linux发行版推荐 Linux系统磁盘和文件系统管理 教你如何用特定命令轻松管理Linux进程? Linux/Ubuntu中的CPU使用率或利用率的查看方法 在Windows、Linux和macOS上安装NumPy Linux watch命令的使用方法
客服咨询
7*24小时技术支持
技术支持
渠道支持