[게시판 이동] Telnet 서버에 동시 접속하여 패러럴하게 동시에 command를 내리고 처리할 수 있는 최대 세션 개수에 대한 질문입니다.
텔렛클라이언트 - 서버(리눅스박스) 환경을 구성해놓고..
클라이언트에서 특정 리눅스 서버로 텔렛 세션을 최대한 많이 오픈하여 cli 테스트를 병렬적으로 수행하고자 합니다..
이 테스트를 하는 이유는 현재 수행중인 과제중에 실제로 1740대의 장비에 동시접속 후 일괄로 command를 내려야 하는 부분이 포함되어있어서인데요..
물론 시퀀셜하게 해도 되겠지만.. 요구사항이 그렇지 않고 최대한 빨리 처리를 해달라는 요구사항까지 있어서...
thread pool을 사용하여 다수개의 telnet session을 동시에 열고 동시에 command를 내려서 처리해야하는 상황에 놓여있습니다.
물론 이것이 과제 전체에 해당되는건 아니지만.. 그 일부기능이기에...
일단은 테스트베드를 구축함에 있어서 이 부분도 고려하여 장비를 구매할 예정입니다.
얼마전 테스트를 한번 해봤는데요.
텔렛서버의 사양은 Zeon 2-way (+Fedora Core 9) + 메모리 2G 였구요.
OS는 Fedora 9 이었습니다.
이 상황에서 클라이언트 pc에서 서버로 동시에 60개의 세션을 열고 command를 내려봤는데요..
50개까지는 안정적으로 잘 동작을 했지만.. 60개가 넘어서자.. 동시연결에 있어서 문제가 생기네요..
connection refused 메시지가 뜰때도 있었고, tcp 연결은 되더라도 server로부터 응답을 받지 못하는 현상도 발생이 되었었습니다.
동일한 테스트를 솔라리스 sparc version 9 프로세서 1503MHz, Memory 4096에서 했을경우, 80개 정도의 동시접속까지는 안정적이었고 90이상부터는 위와 동일했습니다.
썬장비는 가격이 비싸서 구매가 힘든터라... 리눅스박스를 이용해서 테스트를 계속 해야하는데요...
제가 원하는 telnet session은 1740개 입니다.
추후에 실제 망에 들어가서는 클라이언트쪽에서만 부하가 있을뿐.. 실제 텔렛 서버가 되는 1740개 개별 장들에서는 부하가 걸리지 않을것입니다.
지금은 테스트를 위한 테스트베드를 구축해야 하는 상황이라서.. 이와같은 문제점에 봉착한터라.. 이를 해결하여 테스트베드 구축에 필요한 서버용 리눅스 박스의 개수 즉 준비 비용을 줄이고자 함입니다.
어떤식으로 서버쪽을 개선해야... 지금의 이상황을 해결할 수 있을까요? 리눅스는 Fedora 4 이상이면 됩니다.
답변 부탁드리겠습니다.
즐겁고 행복한 하루 되세요..
행운목..
텔넷 세션으로
텔넷 세션으로 하시려는 일이 무엇인지, 정확히 답변이 되려는지 모르겠습니다만.
ulimit 하고 assume kernel 을 좀 찾아보시면 조금이나마 도움이 되시지 않을까 기대해봅니다.
나중에 클라이언트 쪽에서라도..
--
May The Force Be With You.
May The Force Be With You.
perl의 POE모듈을 쓰면
perl의 POE모듈을 쓰면 1740개까지는 모르겠는데... 상당히 많은 수의 병렬처리가 가능할 겁니다.
http://poe.perl.org/?POE_Cookbook/TCP_Clients
대략 위와 같은 프로그램에 일부 수정해서 해당 명령 내리고 받는 구조로 변경하면 될 것 같네요.
python이나 ruby도 비슷한 모듈을 갖고 있는 것으로 압니다.
--
익스펙토 페트로눔
--
익스펙토 페트로눔
흠..
구지 telnet 을 이용해야 하는건가요?
일단 그것은 차치해놓고라도 60개 정도 접속이 이루어진다면 클라이언트 프로그래밍쪽에
조금 문제가 있는듯 보입니다. 프로그램을 손보셔야 될듯 보입니다. 원하시는게 어떠한
것인지는 정확히 모르겠지만 대충 보면 TCP가 아닌 다른쪽으로 구현해보시는건 어떠실런지요.?
한곳에서 여러곳에 동시에 동일한 명령을 내리는 방법은 다양하게 존재합니다.
댓글 달기