- 主题:centos怎样查看系统中有多少个select的fd
如题,select最多能起1024个fd,我现在连续调用select,起的多了,就是报出:filedescriptor out of range in select(),so我想监控一下系统实时起了多少个fd,做出相应的动作,
那问题来了,我想知道查看select实时起的fd该用啥方法
--
FROM 36.112.24.*
【 在 nokia0125 的大作中提到: 】
: 如题,select最多能起1024个fd,我现在连续调用select,起的多了,就是报出:filedescriptor out of range in select(),so我想监控一下系统实时起了多少个fd,做出相应的动作,
: 那问题来了,我想知道查看select实时起的fd该用啥方法
刚才在查了下,select的fd值最大是1024,那我怎样才能查看我系统里select值是否已经达到最大值,用啥样的参数?
--
FROM 36.112.24.*
【 在 iwannabe 的大作中提到: 】
: /proc/<pid>/fd
:
pwd
/proc/23917/fd这目录吗,这个目录下都是:
ls -lt
total 0
lrwx------ 1 root root 64 Sep 23 10:24 255 -> /dev/pts/8
lrwx------ 1 root root 64 Sep 23 10:03 0 -> /dev/pts/8
lrwx------ 1 root root 64 Sep 23 10:03 1 -> /dev/pts/8
lrwx------ 1 root root 64 Sep 23 10:03 2 -> /dev/pts/8
lr-x------ 1 root root 64 Sep 23 10:03 3 -> /var/run/utmp
--
FROM 36.112.24.*
【 在 iwannabe 的大作中提到: 】
: /proc/<pid>/fd
:
看不懂啊
--
FROM 36.112.24.*
在网上仔细看了一下,fd值会累加,最多累加到1024,那我在哪里能看到当前fd值累加到多少了
--
FROM 36.112.24.*
【 在 gameplayer 的大作中提到: 】
: 是当前进程,不是整个系统,这些fd是你自己添加到select里的,自己还不知道大小?
: /proc/<pid>/fd下是pid对应的进程打开的文件描述符,数字就是fd,链接是fd对应的文件
: 别整select了,换了吧
: ...................
fd是自己添加到select里边的,没听懂,我理解fd是随着select调用而递增,最后到了1024就会报出out of range
--
FROM 36.112.24.*
【 在 wzl12356 的大作中提到: 】
: 内核配置的参数。 1024是默认值,可以大于1024,但是需要重编内核
: 发自「今日水木 on iPhone 7」
ok,明白
--
FROM 36.112.24.*
【 在 adoal 的大作中提到: 】
: 但是一般不建议这么做……
:
好的,明白,谢谢大家
--
FROM 36.112.24.*
【 在 ylh1969 的大作中提到: 】
: fd本身<1024即可。
: 为啥不用epoll?没有限制的。
用的是python下的pexpect,它管理底层socket调用,用的是select
--
FROM 120.244.117.*
因为用了pexpect远程的方式登陆主机,管理多个socket 链接用的select, 现在问题是pexpect 链接到了一定的数目就再也登不上,提示select out of range,
--
FROM 120.244.117.*