2017-02-24 4 views
0

Turbogears v2.1.5 기반의 웹 게임에서 로그인 한 사용자는 주기적으로 16 바이트 메시지를 POST합니다. POST 속도가 초당 60 POST 일 때 서버 CPU는 100 %에 도달합니다. (테스트를 위해 DB를 각 게시물별로 업데이트하는 등 모든 작업을 제거 했으므로 서버는 즉시 빈 응답을 반환합니다.)Turbogears2에서 초당 POSTs 최적화

wrk을 사용하여 16 바이트 정적 파일을 얻으면 Turbogears 도달률이 ~ 초당 500 회의 요청을 처리하고 게임의 POST를 통해 해당 비율과 일치 시키거나 그 비율에 가까워지기를 원합니다. 우리는 초당 1,000 또는 그 이상의 POST를하고 싶습니다.

설치 : Turbogears v2.1.5, AWS c3. 큰 용량, Windows Server 2008 R2, Intel Xeon, E5-2680 v2 @ 2.8Ghz 2.8Ghz.

질문 :이 시나리오에서 우리에게 500 초 이상 POST를 처리하게하는 tg2 설정 또는 다른 변경 사항이 있습니까?

답변

1

TG2.3으로 업그레이드 할 수있는 경우 최신 릴리스의 작업으로 인해 프레임 워크 성능 (http://blog.axant.it/archives/452)이 크게 향상되었습니다.

또한 더 속도 향상을위한 2.3 (http://turbogears.readthedocs.io/en/latest/turbogears/minimal/index.html)에 도입 된 새로운 최소 모드는 쉽게 국제화, 세션 등처럼 필요없는 구성 요소를 비활성화 할 수 있습니다 .. 통해 (http://turbogears.readthedocs.io/en/latest/reference/config-options.html에서 다양한 X.enabled 옵션 참조). i18n 및 정적 파일 지원을 비활성화하면 대개 성능이 향상됩니다.

+0

감사합니다. - 업그레이드하고 다른 유용한 제안을 시도 할 것입니다. 당신은 python2 대 python3을 사용함으로써 발생하는 성능 차이를 기대합니까? (현재 Python2를 사용하고 있습니다.) – web20

+0

후속 조치 - 여기에서 주된 활동은 응답을 게시하는 것이므로 i18n 또는 정적 파일이 성능에 영향을 줍니까? 그것은 둘 다 json 데이터 POST를 만지는 것처럼 보이지 않습니다. 세션이 성능에 미치는 영향을 알 수 있었지만 어떤 사용자가 데이터를 게시하는지 알면 중요하므로 비활성화 할 수는 없습니다. – web20

+0

업데이트 : 웹 게임의 관련 부분을 TG2.3으로 포팅했습니다. 우분투 및 Windows에서 초당 최대 100 POST를 볼 수 있습니다. 그러나 "authtkt"쿠키가 _not_ 전송 된 경우 우리는 우분투에서 초당 ~ 700 개의 POST를보고 Windows에서 ~ 580을 봅니다. 아이덴티티 관련 데이터베이스 쿼리가 3 개 이상이라면 상당한 속도 저하가 발생합니다 (아직 어떤 사용자가 POST를 수행하는지 알 필요가 있습니다). 초당 1,000 개 이상의 POST에 도달하는 도움말/아이디어 (게시물 당 사용자 신원 정보 포함) 환영합니다! – web20