본문 바로가기

프로그래밍/Python

TORNADO too many file descriptors in select()

반응형

514

515

516

517

518

519

520

521

522

523

524

525

Traceback (most recent call last):

  File "D:\LiSeminar\dwyoon\www\login_persist\server.py", line 116, in <module>

    main()

  File "D:\LiSeminar\dwyoon\www\login_persist\server.py", line 113, in main

    tornado.ioloop.IOLoop.current().start()

  File "C:\Python27\lib\site-packages\tornado\ioloop.py", line 858, in start

    event_pairs = self._impl.poll(poll_timeout)

  File "C:\Python27\lib\site-packages\tornado\platform\select.py", line 63, in poll

    self.read_fds, self.write_fds, self.error_fds, timeout)

ValueError: too many file descriptors in select()



MS 윈도우 운영체제에서 간단한 tornado RESTful server 를 만들어 접속을 유지해 보았다. ( tornado demo chat 을 변형 )

위와 같이 접속이 525 개가 넘어가면서 에러가 나며 프로그램이 죽었다.


https://groups.google.com/forum/#!topic/python-tornado/oSbxI9X28MM

From: Ben Darnell <b...@bendarnell.com> Date: Fri, 25 Nov 2011 11:25:18 -0800


64 is the default limit for select() on Windows; in Python's select module it's raised to 512: http://hg.python.org/cpython/file/9a712ad593bb/Modules/selectmodule.c#l25


windows 의 select() 의 (파일 디스크립터 갯수) 기본 제한값은 64이다. 파이썬 select 모듈에서는 512로 늘어났다.

728x90