连接linux服务器,人数连至700多人时,报出"too many open files"错误

tomorjerry 2007-08-24 02:15:12
问题同上,看了网上关于too many open files的解决方法,都试过了,可是还是不行,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) 65535
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) 15355
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
不知道是何原因?
...全文
270 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
tomorjerry 2007-09-25
  • 打赏
  • 举报
回复
这个原来是ace库自己的问题,与linux并没有直接的关系,所以没事了。对了这个帖子怎么结啊,俺还真是老土,帖子不结,就老给我发邮件骚扰提示,好烦人
dai_weitao 2007-09-21
  • 打赏
  • 举报
回复
怎么解决的? 说说
tomorjerry 2007-09-21
  • 打赏
  • 举报
回复
问题已解决!
tomorjerry 2007-08-27
  • 打赏
  • 举报
回复
我的程序是用ACE做的,在getrlimit时,不论用ulimit或者在程序中setrlimit把fd设为多少,rlim_cur总是1024,不知道是什么原因
cceczjxy 2007-08-24
  • 打赏
  • 举报
回复
是不是要重启机器才有效?
这就搞不懂了.
tomorjerry 2007-08-24
  • 打赏
  • 举报
回复
我看了/proc/pid/fd
数据在1022的时候还可以,但是再连就死掉了
我改过/etc/sysctl.conf,加了fs.file-max = 65535,
也改了/etc/security/limits.conf,加了* - nofile 65535,
难道fd数量限制并没有改变吗,还要做什么改动呢
cceczjxy 2007-08-24
  • 打赏
  • 举报
回复
这样就不对了呀
我系统什么都不做:
cat /proc/sys/fs/file-nr
2865 0 24697


你的数也太少了.
不知道什么原因.

不过
再有就是你进入/proc/pid/fd/里看看,你的进程打开了那些文件,(pid是你的程序的进程号)
tomorjerry 2007-08-24
  • 打赏
  • 举报
回复
连到710多人的时候是
1860 0 65535
再多连服务器就死了!服务器是一个进程的多线程程序
tomorjerry 2007-08-24
  • 打赏
  • 举报
回复
是同时连接了700多人,我的第二列总是为0,这个正常吗
cat /proc/sys/fs/file-nr :
855 0 65535
cceczjxy 2007-08-24
  • 打赏
  • 举报
回复
这有很多种情况.

你描述清楚一些,到底是同时连接700个出问题了,还是从程序开始运行一共连接过700个时出问题了?

限制文件打开数的不光这一个地方,这个样设置的是进程的最大打开文件数.
另外还有一个系统打开文件数,在运行过程中,你查看一下它的情况.

/proc/sys/fs/file-nr

第一列是当前已经打开文件数,第三列是系统允许最大打开数.

23,116

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧