游乐游手机版
首页/系统平台/文章详情

如何在银河麒麟V10中修改资源限制配置

时间:2026-07-08 07:35
在银河麒麟V10系统中,修改资源限制主要有三种方式:通过 etc security limits conf文件永久配置用户级限制,使用systemdset-property命令为特定服务设限,以及直接修改 proc PID limits文件在线调整运行中的进程。注意修改后需重新登录生效,确保持久化配置,且不能超过硬上限约束。

说到经典的“too many open files”错误,在银河麒麟V10上要彻底解决,其实思路很清晰,总结下来就三种:用户级的永久配置、针对特定服务的systemd设置,以及进程级的在线调整。要我说啊,这事其实分三条路,咱们一个一个来拆解。

银河麒麟V10如何修改系统的资源限制配置

先交代一下背景。在银河麒麟V10里跑高并发服务,比如nginx,最烦的就是突然冒出个“too many open files”,或者线程数超限、堆栈溢出,直接进程就崩溃了。所以,提前把文件描述符、线程数等资源限制配置好,是保障服务稳定运行的前提条件。

永久修改用户级资源限制

这个方法最实在,也最安全,生产环境里用得最多。它会把限制参数写进系统全局配置文件中,对所有普通用户以及之后启动的shell子进程都生效。

操作步骤并不复杂:
用sudo nano /etc/security/limits.conf 打开配置文件,在文件末尾追加四行。但必须提醒的是,星号和数值之间必须有空格,否则系统解析会失败,那么之前的修改就白费了。
∗ soft nofile 65536
∗ hard nofile 65536
∗ soft nproc 65536
∗ hard nproc 65536

保存退出后,最关键的一步:必须重新登录当前用户会话。旧的终端窗口不会继承新的限制值。验证也很简单,在终端里执行 ulimit -nulimit -u,如果都输出65536,说明配置已生效。

为特定服务进程单独设限

有时候,比如nginx或者redis,它们所需的CPU、内存配额和普通进程不一样。为了避免一个服务的配置影响到其他进程,就需要使用systemd服务级的资源限制。

这里有两种方式:
临时设置(重启后失效):适合应急测试。执行 sudo systemctl set-property nginx.service MemoryLimit=1G,然后 sudo systemctl daemon-reload,最后 sudo systemctl restart nginx

持久化配置(强烈推荐):正式环境推荐用这个。执行 sudo systemctl edit nginx.service,在弹出的空白文件中输入:
[Service]
MemoryLimit=1G
CPUQuota=75%

保存后无需reload,systemd会自动将配置合并进去。想知道是否配置成功?用 sudo systemctl show nginx.service | grep -E "MemoryLimit|CPUQuota" 查看一下就清楚了。

在线调整正在运行进程的nofile限制

有时候服务器正跑着,突然文件描述符占满,又不能重启进程,这时候就需要用在线调整来救急。不过要注意,这个方法只能针对特定的PID,而且不能突破ulimit中“hard”那个硬上限。

步骤也很简单:
第一步,找到目标进程的PID。比如找nginx主进程:ps -eo pid,comm | grep nginx | head -1
第二步,检查它当前的限制情况:cat /proc/【PID】/limits | grep "Max open files"
第三步,用root权限向这个进程的limits文件写入新值:echo -n "65536" > /proc/【PID】/limits/nofile

必须提醒的是,这个操作是不可逆的。如果写入的值不是数字,或者超出了内核允许的范围,写入会失败,而且没有任何提示信息。如果写对了,那就立刻生效,完全不用重启进程,这倒是很实用。

话说回来,三种方法各有各的适用场景。生产环境里,通常都是用户级永久配置打底,再给重要的服务单独设限,偶尔遇到突发情况就用在线调整来兜底。把这套组合拳练熟了,面对高并发场景时心里就踏实多了。

来源:https://www.php.cn/faq/2782720.html
上一篇MacBook访达图标预览关闭方法 下一篇统信UOS设置系统最大进程数限制的方法详解
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
麒麟操作系统如何查看共享内存段信息
系统平台 · 2026-07-08

麒麟操作系统如何查看共享内存段信息

排查麒麟系统共享内存问题时,首先使用cat proc sysvipc shm或ipcs-m命令查看所有共享内存段,并仔细关注其大小和最后操作进程ID两个关键字段,接着通过ipcs-m-i和ps命令来精确定位归属的进程,确认没有任何有效使用者之后,再使用ipcrm-m命令进行安全清理操作。

麒麟操作系统运行Python脚本的完整指南
系统平台 · 2026-07-08

麒麟操作系统运行Python脚本的完整指南

在银河麒麟系统上双击 py文件无反应,因Peony文件管理器限制且环境未加载。具体解决方法:终端显式调用python3运行;先激活conda环境再运行;或创建 desktop文件,设置Exec完整路径及Terminal属性,实现双击启动。请同时注意需确保文件有执行权限。

麒麟OS怎么设置鼠标右键点击即选择
系统平台 · 2026-07-08

麒麟OS怎么设置鼠标右键点击即选择

麒麟OS可通过三种方法实现右键点击即选中:临时用xinput调换按钮映射;通过gsettings关闭右键菜单并配合xbindkeys脚本模拟左键点击;或修改Peony源码重新编译。各方法适合不同场景,建议根据需求选择。

银河麒麟系统用户头像资料无法修改的解决办法
系统平台 · 2026-07-08

银河麒麟系统用户头像资料无法修改的解决办法

在银河麒麟系统中无法修改用户头像和资料,因AccountsService服务写入元数据出错,表现头像保存失败或重启后恢复。解决需修复` var lib AccountsService icons `目录权限,将` var lib AccountsService users `下配置文件属主改为当前用户并设为600权限,最后重启accounts-daemon并

麒麟OS如何查看正在运行的服务
系统平台 · 2026-07-08

麒麟OS如何查看正在运行的服务

麒麟OS查看运行服务推荐使用systemctllist-units--type=service--state=running命令,准确显示实际运行服务。精简命令systemctl--type=service--state=running同样有效。旧环境service--status-all可能误判,需用ps命令辅助验证进程真实性。