是否可以考虑使用systemd来管理
leochien0102 opened this issue · 0 comments
leochien0102 commented
如题,近期在Google Cloud上(系统是CentOS 7.4)部署Game-Server,发现日志中大量i/o timeout,经查,可能是系统打开最大文件数造成的,默认是1024。
$ ps -ef | grep game-server
root 1391 1 0 14:57 pts/0 00:00:00 /usr/local/game-server/game-server -c /usr/local/game-server/config.json
$ cat /proc/1391/limits
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size 0 unlimited bytes
Max resident set unlimited unlimited bytes
Max processes 7912 7912 processes
Max open files 1024 4096 files
Max locked memory 65536 65536 bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals 7912 7912 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
同样部署的Shadowsocksr服务获得的信息是
Max open files 512000 512000 files
修改 /etc/systemd/system.conf
去掉注释,并设置DefaultLimitNOFILE=10240,保存退出,重启服务器
获得game-server进程信息是
Max open files 10240 10240 files
运行一段时间,都没再出现过i/o timeout
不过此处有个疑问,/etc/systemd/system.conf 理论上是为systemd服务的,而game-server的启动是在/etc/init.d下,为什么修改/etc/systemd/system.conf 会对game-server起作用?
如果采用systemd来做服务,可以service中直接用LimitNOFILE=来设定,是不是会更方便一些。
以上是新人的一些困惑,有差错的地方,望指正。