ps做网站标签,东莞营销型网站建设流程,丰台网站建设报价,免费咨询问题的网站文章目录 Pre#xff08;内核、用户、进程#xff09;句柄数设置问题 shell修复 Pre
Linux - 深入理解/proc虚拟文件系统#xff1a;从基础到高级 #xff08;内核、用户、进程#xff09;句柄数设置
在Linux系统中#xff0c;进程打开的最大句柄数可以通过多种方式配置… 文章目录 Pre内核、用户、进程句柄数设置问题 shell修复 Pre
Linux - 深入理解/proc虚拟文件系统从基础到高级 内核、用户、进程句柄数设置
在Linux系统中进程打开的最大句柄数可以通过多种方式配置涉及不同的层次和持久性 临时调整 使用ulimit命令可以在当前shell会话中临时调整用户进程的打开文件描述符的软限制soft limit。例如ulimit -n 65536若要调整硬限制hard limit需要超级用户权限sudo ulimit -Hn 65536永久性调整 /etc/security/limits.conf这个文件可以用来永久性地设置用户和组的资源限制包括打开的文件描述符数。格式如下* soft nofile 65536
* hard nofile 65536其中*表示所有用户可以替换为具体的用户名或用户组。soft和hard分别表示软限制和硬限制。 系统全局限制 /proc/sys/fs/file-max这个文件反映了系统全局可打开的文件描述符总数。调整这个值需要修改内核参数通常需要重启系统才能生效。在/etc/sysctl.conf中添加以下行可以实现fs.file-max 6553560然后运行sysctl -p使更改生效或者在系统启动时自动应用。 请记住修改这些设置可能会影响系统性能和稳定性特别是在提高限制时可能会消耗更多的系统资源。因此在进行任何更改之前最好先评估其影响并确保有足够的资源来支持增加的句柄数。 问题 shell
#!/bin/bash
source /etc/profile
CURPATH$(cd $(dirname $0);pwd)
JVM$(cat $CURPATH/xxx.ini)artisanProcess$CURPATH/artisan.jar# now set the path to java
# [ ! -e $JAVA_HOME/bin/java ] JAVA_HOME$HOME/jdk/java
# [ ! -e $JAVA_HOME/bin/java ] JAVA_HOME/usr/java
# [ ! -e $JAVA_HOME/bin/java ] JAVA_HOME/appstore/programfiles/mbws_jdk
# [ ! -e $JAVA_HOME/bin/java ] unset JAVA_HOMEsource /xxxx/xxxjdk.option
COMMON_JVM$(cat /axxxx/xdded.option)if [ -f $JAVA/bin/java ];thenexport JAVA_HOME$JAVAexport PATH$JAVA_HOME/bin:$PATH
fiif [ -z $JAVA_HOME ]; thenJAVA_PATHdirname $(readlink -f $(which java))if [ x$JAVA_PATH ! x ]; thenexport JAVA_HOMEdirname $JAVA_PATH 2/dev/nullfiif [ -z $JAVA_HOME ]; thenerror_exit Please set the JAVA_HOME variable in your environment, We need java(x64)! jdk8 or later is better!exit 1fi
fiwhile [ 1 -eq 1 ]
doAdminProcNumps -ef | grep $rpcProcess | grep -v grep | wc -lecho AdminProcNum:$AdminProcNumif [ $AdminProcNum -lt 1 ]thencd $CURPATHsudo sysctl -w fs.file-max999999sudo sysctl -w net.ipv4.tcp_tw_reuse1sudo sysctl -w net.ipv4.tcp_fin_timeout15sudo sysctl -w net.core.netdev_max_backlog4096sudo sysctl -w net.core.somaxconn40960sudo sysctl -w net.ipv4.tcp_max_syn_backlog40960sudo sysctl -w net.ipv4.tcp_syncookies1sudo sysctl -w net.ipv4.tcp_syn_retries2sudo sysctl -w net.ipv4.tcp_synack_retries2sudo ulimit -u 999999sudo ulimit -n 999999nohup $JAVA/bin/java $JVM $COMMON_JVM -jar $artisanProcess /dev/null 21 cho $! $CURPATH/tpidcd -fisleep 10
done为了至此降权操作增加了sudo sudo sysctl -w fs.file-max999999sudo sysctl -w net.ipv4.tcp_tw_reuse1sudo sysctl -w net.ipv4.tcp_fin_timeout15sudo sysctl -w net.core.netdev_max_backlog4096sudo sysctl -w net.core.somaxconn40960sudo sysctl -w net.ipv4.tcp_max_syn_backlog40960sudo sysctl -w net.ipv4.tcp_syncookies1sudo sysctl -w net.ipv4.tcp_syn_retries2sudo sysctl -w net.ipv4.tcp_synack_retries2sudo ulimit -u 999999sudo ulimit -n 999999导致ulimit -n 999999 不生效 cat /proc/$pid/limits 修复
方式一 去掉sudo
方式二 如下 对于系统服务特别是使用 Systemd 的系统还可以在服务单元文件位于 /etc/systemd/system/ 或 /lib/systemd/system/中通过 LimitNOFILE 设置最大打开文件数。例如
[Service]
LimitNOFILE999999修改配置文件后可能需要重启相关服务或用户会话使设置生效。如果是修改了 /etc/security/limits.conf通常需要用户重新登录才能看到变化。对于 Systemd 管理的服务则需执行 systemctl daemon-reload 后重启服务。