前言:本文只打算作为「技术笔记」来写,对关键的要点进行一下点拨就完事,没想写成教程。或许能让熟手解决麻烦,如果是新手的话,最好是先有相关的基础知识和经验。当然,直接喂给AI,让它嚼过再给你慢慢解释,可能也是一个办法。
这些天还是在折腾信创的事情。安装了银河麒麟V10
SP2的一个默认设置的版本,带了可视化界面,准备用于安装「达梦」。
达梦的安装手册写得有一些问题,缺了一些要点,不过对于有一定经验的人而言,还算能解决。手册中有一个要求,就是要把ulimit里面的open
files数量调大。原始的1024,看起来不太够用。
图片来自网络 |
对Linux特别是CentOS7熟悉的人,应该反应过来了。不要直接改ulimit,应该去改/etc/security/limits.conf:
* soft nofile 65535 * hard nofile 65535
改完之后,重新登录的账号就已经是新的open files上限了。简单重启一下就应该万事OK了。
可是,不,没有那么简单!(莫名其妙的英式中文)
在我看来,改完重启以后,对于非root用户似乎完全没有效果。
root账号好像真的是OK了。但达梦的安装手册提到需要创建专用的dmdba账号用于DBMS的安装。我在可视化界面登录dmdba账号后,打开「终端」窗口,ulimit还是1024。
测试下来,发现:
- ssh上来的session有效果;
- su切换过去的账号有效果。
这说明对/etc/security/limits.conf的修改还是有效果的,只是不知道为什么在某些场合下不能生效。
百思不得其解。最后找到这篇Blog,是博客园的。标题起得有点不好找:《systemd service 设置limit,不生效问题》。它引用的原文的URL已经失效了,所以我还是得把要点直接再说一下。简单来说就是:
- 要修改用systemctl启动的服务的ulimit,需要修改/etc/systemd/system.conf
- 要修改从可视化界面登录的用户的ulimit,需要修改/etc/systemd/user.conf
实际上的情况比这个要复杂一些。第二点不是原文中的描述,是我自己试出来的。我目前也无意去成为一个Linux或银河麒麟方面的专家,所以就暂时不作更多的探索了。
另外,修改了/etc/systemd/system.conf以后,需要先重启systemd:
systemctl daemon-reexec
然后用systemctl启动/重新启动的服务,才能用上新的ulimit设置。
毕竟咱们改的是systemd的配置文件,对吧。
没有评论:
发表评论