您的位置:首页 > 运维架构 > Linux

Linux select 文件描述符1024限制------此处容易导致core dump

2017-06-25 12:58 369 查看
          转载地址: http://blog.csdn.net/sxtobj/article/details/53170782
最近系统出现宕机的情况,分析core文件,所有的线程都在select处。
最后怀疑是文件描述符超过了1024。但是想到Apache也是采用select的io模型。所以还是很不理解。
查看了Linux的内核源码linux-2.6.32。
static __inline__ void __FD_SET(unsigned long fd, __kernel_fd_set *fdsetp)

{

    unsigned long _tmp = fd / __NFDBITS;

    unsigned long _rem = fd % __NFDBITS;

    fdsetp->fds_bits[_tmp] |= (1UL<<_rem);

}

#define __NFDBITS    (8 * sizeof(unsigned long))

typedef struct {

    unsigned long fds_bits [__FDSET_LONGS];

} __kernel_fd_set;

#define __FDSET_LONGS   (__FD_SETSIZE/__NFDBITS)

#define __FD_SETSIZE    1024

起关键作用的就是红字部分。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: