C++程序在linux服务器运行需要修改的系统配置文件
1、查询服务器TCP连接句柄数命令
lsof | awk '{print$2}' | wc -l
lsof | awk '{print$2}' | uniq -c | wc -l
若句柄数连接数超过ulimit -n命令查出的数,那么,可能存在某些业务无法正常交互,比如,web后台与C++后台程序之间的HTTP交互无法正常链接,则,可以在/etc/security/limits.conf配置文件添加两行,修改最大文件描述符限制,
root soft nofile 65535
root hard nofile 65535
root用户的软限制为65535,硬限制为65535
在/etc/profile 中增加一行 ulimit -SHn 65535
注意:可能存在/etc/security/limits.conf修改不生效,可以尝试在/etc/profile此文件中修改。
2、core文件永久生效设置
在C++程序运行中,可能会存在服务崩溃的问题,要设置生成core文件大小,
查看限制情况 ulimit -a
可以看到如下信息
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
pending signals (-i) 1024
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 4096
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
而我们需要修改的是open files (-n) 1024的值
于是命令就是limit -n 2048(在当前shell生效)