在Linux中的解决方法

上传人:ni****g 文档编号:497801893 上传时间:2023-07-16 格式:DOCX 页数:2 大小:10.30KB
返回 下载 相关 举报
在Linux中的解决方法_第1页
第1页 / 共2页
在Linux中的解决方法_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《在Linux中的解决方法》由会员分享,可在线阅读,更多相关《在Linux中的解决方法(2页珍藏版)》请在金锄头文库上搜索。

1、回答一、rootlxadminnginx# cat /proc/sys/fs/file-max8192文件系统最大可打开文件数rootlxadminnginx# ulimit -n1024程序限制只能打开1024个文件使用rootlxadminnginx# ulimit -n 8192 调整一下或者永久调整打开文件数可在启动文件/etc/rc.d/rc.loca l末尾添加(在/etc/sysctl.conf末尾添加 fs.file-max=xxx 无效)ulimit -n 8192回答二、Linux内核有时会报告“Too many open files”,起因是file-max默认值(809

2、6)太小。要解决 这个问题,可以root身份执行下列命令(或将它们加A/etc/rcS.d/*下的init脚本。)# echo 65536 /proc/sys/fs/file-max # 适用于 2.2 和 2.4 版内核# echo 131072 /proc/sys/fs/inode-max # 仅适用于 2.2 版内核回答三、办法是修改操作系统的打开文件数量限制,方法如下:1. 按照最大打开文件数量的需求设置系统,并且通过检5/proc/sys/fs/file-max文件来确认 最大打开文件数已经被正确设置。# cat /proc/sys/fs/file-max如果设置值太小,修改文件/e

3、tc/sysctl.conf的变量到合适的值。这样会在每次重启之后生效。如果设置值够大,跳过下步。# echo 2048 /proc/sys/fs/file-max编辑文件/etc/sysctl.conf,插入下行。fs.file-max = 81922. 在/etc/security/limits.conf文件中设置最大打开文件数,下面是一行提示:#添加如下这行。# - nofile 8192这行设置了每个用户的默认打开文件数为2048。注意nofile项有两个可能的限制措施。就 是项下的hard和soft。要使修改过得最大打开文件数生效,必须对这两种限制进行设定。 如果使用-字符设定,则h

4、ard和soft设定会同时被设定。硬限制表明soft限制中所能设定的最大值。soft限制指的是当前系统生效的设置值。hard 限制值可以被普通用户降低。但是不能增加。soft限制不能设置的比hard限制更高。只有 root用户才能够增加hard限制值。当增加文件限制描述,可以简单的把当前值双倍。例子如下,如果你要提高默认值1024, 最好提高到2048,如果还要继续增加,就需要设置成4096。另外一种情况是在创建索引的时候,也有两种可能,一种是合并因子太小,导致创建文件数 量超过操作系统限制,这时可以修改合并因子,也可以修改操作系统的打开文件数限制;另 外一种是合并因子受虚拟机内存的限制,无法

5、调整到更大,而需要索引的doc数量又非常 的大,这个时候就只能通过修改操作系统的打开文件数限制来解决了。在此基础上,我还修改了以下一个配置文件vi /etc/sysctl.conf添加:# Decrease the time default value for tcp_fin_timeout connection net.ipv4.tcp_fin_timeout = 30# Decrease the time default value for tcp_keepalive_time connection net.ipv4.tcp_keepalive_time = 1800# Turn off

6、tcp_window_scaling net.ipv4.tcp_window_scaling = 0# Turn off the tcp_sack net.ipv4.tcp_sack = 0 #Turn off tcp_timestamps net.ipv4.tcp_timestamps = 0然后service network restart,这些都和TCP sockets有关的优化。 另外需要在/etc/rc.d/rc.local里添加已使得重启的时候生效。 echo 30/proc/sys/net/ipv4/tcp_fin_timeout echo 1800/proc/sys/net/i

7、pv4/tcp_keepalive_time echo 0/proc/sys/net/ipv4/tcp_window_scaling echo 0/proc/sys/net/ipv4/tcp_sack echo 0/proc/sys/net/ipv4/tcp_timestamps因为不是所有的程序都在root下跑的,所有linux有对hard与soft open files的区分,普通 用户受hard的限制,无论ulimit -n $数值调到多高,都跑不到/etc/security/limits.conf里nofile 的值.这样的优化后lsof -p $java_pid|wc -l可以跑到4千以上都不会抛出too many open files。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号