ulimit设置句柄数

这几天在做一个性能测试,写了一个模拟发送http的程序。模拟100并发的情况下,随机发http get的请求。放到服务器上运行一段时间抛出Too many open files的异常。

  这几天在做一个性能测试,写了一个模拟发送http的程序。模拟100并发的情况下,随机发http get的请求。放到服务器上运行一段时间抛出Too many open files的异常。

  异常信息简单的信息如下:

  I/O exception (java.net.SocketException) caught when processing request: Too many open files

  大致了解下,是文件句柄数设置太低导致的。一般linux服务器默认的句柄数都是1024,执行ulimit -n,查看了下当前的seesion环境下句柄数。果然就是1024.

  当前登录的账户并不是root,直接切换到root账户,修改后切回到操作用户metaboy 。发现句柄数并没有改变。

  所以使用下面的命令:

  ulimit -n 65535

  并不能有效的解决这个问题。直接这么修改open files 不能得到保持。下面给出的方法最简单和最直接:

  修改/etc/security/limits.conf 添加如下一行:

  * - nofile 65535

  修改/etc/pam.d/login添加如下一行

  session required /lib/security/pam_limits.so

  最重要的,修改完这些后,要重新登录下才行,不然该session的句柄数不会生效。

原文转自:http://www.wangyuxiong.com/archives/52144

时间: 2024-11-06 11:40:06

ulimit设置句柄数的相关文章

修改操作系统句柄数和用户进程数

对于一般的应用来说(像Apache.系统进程)1024完全足够使用.但是像squid.mysql.java等单进程处理大量请求的应用来说就有点捉襟见肘了.如果单个进程打开的文件句柄数量超过了系统定义的值,就会提到"too many files open"的错误提示.怎么查看当前进程打开了多少个文件句柄呢? lsof -n |awk '{print $2}'|sort|uniq -c |sort -nr|more 在系统访问高峰时间以root用户执行上面的脚本,可能出现的结果如下: #

linux下查看系统进程占用的句柄数

查看系统默认句柄数: [[email protected] ~]# ulimit -n 65535 [[email protected] ~]# 查看当前系统打开的句柄数 [[email protected] ~]# lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|more 553 26093 205 22235 175 25323 142 23897 125 1020 113 6857 79 3570 61 30939 58 19726 53 30

Windows句柄数限制

设置 GDIProcessHandleQuota项设置GDI句柄数量,默认值为2710(16进制)/10000(10进制),该值的允许范围为 256 ~ 16384 ,将其调整为大于默认的10000的值.如果您的系统配置了2G或更多内容,不妨将其设置为允许的最大值 16384(10进制): USERProcessHandleQuota项设置用户句柄数量,默认值同样为2710(16进制)/10000(10进制),该值的允许范围为 200 ~ 18000 ,将其调整为更多的数值.同样地,对于具有2G

Linux进程数,句柄数,文件描述符是什么

linux文件句柄数 linux文件句柄数 1.问题阐述: too many open files:顾名思义即打开过多文件数. 不过这里的files不单是文件的意思,也包括打开的通讯链接(比如socket),正在监听的端口等等,所以有时候也可以叫做句柄(handle),这个错误通常也可以叫做句柄数超出系统限制. 2.产生的原因: 经常在使用linux的时候出现,大多数情况是由于程序没有正常关闭一些资源引起的,所以出现这种情况,请检查io读写,socket通讯等是否正常关闭. 3.经典案例: 很多

使用测试工具时候如何计算设置并发数?

方法论-1: 同时在线用户数:平均并发数:并发用户数峰值: 在实际的性能测试工作中,测试人员一般比较关心的是业务并发用户数,也就是从业务角度关注究竟应该设置多少个并发数比较合理,因此,在后面的讨论中,也是主要针对业务并发用户数进行讨论,而且,为了方便,直接将业务并发用户数称为并发用户数. (1)  计算平均的并发用户数: C = nL/T                     即:平均并发数=总用户数*用户在线时长/总工作时间 (2)  并发用户数峰值: C’ ≍ C+3*SQRT(C) 即:

c# 句柄数不断攀升的解决方案

句柄只是用来标识应用程序中的不同对象和同类中的不同的实例的一个数字,通常情况下,句柄值对普通用户毫无用处,但是句柄数量却可以间接反映出一个程序里产生的对象实例的多少.句柄数越多,代表程序里new 出来的对象越多.但是在c#里,经常会遇到句柄数莫名其妙的增加. DateTime lastTime1 = DateTime.Now.AddHours(1); while (true) { var a = lastTime1 - DateTime.Now; if (a.TotalHours <= 0) {

Linux Shell 网络层监控脚本(监控包括:连接数、句柄数及根据监控反馈结果分析)

脚本监控: 获取最大句柄数的进程: 链接分析: 脚本片段: case "$handle" in 2) echo "The handle of the process : " echo " " handle | awk '{print $3 "\n" $5 "\n" $7 "\n" $9 "\n" $11 "\n"}' > temp for i

服务器内存占用不断的增加 &amp; 任务管理器(PF使用率)不断的增加:关注句柄数

最近一二个月以来,我发现服务器的内存占用正按着每天60M的速度增加. 一台windows 2003的服务器(2G内存),刚刚启起时占用内存:600M左右. 运行20天后,内存占用(PF使用):1.8G 其实物理内存使用情况在这20天来并没有太大的变化,但虚拟内存占用明显在不停的增加. 我通过“任务管理器”一直也找不到是哪个进程占用的这么多的内存. 也许是因为“任务管理器”里显示的内存占用仅代表的是“物理内存占用”吧. 今天对比服务器上和本地电脑上的“任务管理器”的显示情况,偶然发现它们之前的一个

Latex 三线表及设置列数

参考: latex的三线表格及一些错误的修改 latex 三线表 Latex 三线表 及设置列数 绘制三线表: \begin{table}[htbp] \caption{\label{tab:test}示例表格} \begin{tabular}{lcl} \toprule .. & .. & .. \ \midrule .. & .. & .. \ .. & .. & .. \ .. & .. & .. \ \bottomrule \end{