2009-11-28 3 views
0

웹 응용 프로그램 (Spring, Struts2 REST, PostgreSQL을 사용하여 작성)에서 JMeter으로 스트레스 테스트를 수행하고 있습니다.Tomcat에서 평균 최대 동시 사용자 수

내 응용 프로그램과 함께 일반 사용자의 시나리오를 시뮬레이션하고 있습니다 :

4 GET, 3 INSERT, 20 개 UPDATE 통화.

서버 사양 :

4core 인텔 제온 X5365 3GHz의

8기가바이트 RAM

단일 320기가바이트 SATA 디스크

OS : 우분투 8.10 32 비트

DB : PostgreSQL을 8.4

톰캣 6.0.18

자바 1.6.0_14

결과는 해당 서버가 약 130 동시 트랜잭션을 처리 할 것입니다 보여줍니다. 이 번호가 가능합니까? 내 결과와 비교할 온라인 결과가 있습니까?

답변

4

병목 현상이 데이터베이스에 있으므로 데이터베이스 성능을 알지 못하면 비교하기가 매우 어렵습니다.

비슷한 시스템이 있습니다 (16GB RAM 제외, Tomcat 5.5 실행). 피크로드에서는 256 개의 동시 연결을 쉽게 처리 할 수 ​​있습니다. 우리는 당신이 프런트 엔드로 아파치를 실행하는 경우, mod_jk를 사용

  1. , 512

    일부 튜닝 팁에 maxThreads을 변경 논의된다. 그 성능은 mod_proxy보다 훨씬 낫습니다. 직접 HTTP 서비스를 제공 또는 mod_proxy를 사용하는 경우

  2. 확실 스레드 풀 (maxThreads)를 확인 톰캣 6의 NIO 커넥터를 사용하는만큼 큰 기본은 200
  3. Tomcat이 상태가없는 확인합니다. 특히 HttpSession을 사용하지 마십시오. 상태로 인해 앱에서 메모리 누수가 발생하고 성능이 점차 저하 될 수 있습니다. 모든 상태를 데이터베이스 또는 클라이언트 (쿠키)로 푸시하십시오.
  4. 데이터베이스 풀링 (DBCP)을 사용합니까? 우리는 MySQL을 가지고 JDBC 드라이버는 매우 수다스러운입니다.
  5. JMeter 인스턴스 하나를 실행하면 병목 현상이 발생할 수 있습니다. 다른 네트워크의 여러 슬레이브를 실행하여 실제 생산로드를 시뮬레이션합니다.
+1

좋은 목록이지만'commons-dbcp' 대신'tomcat-jdbc'를 사용하십시오. DBCP는 즉 단일 스레드입니다. 더 많은 정보 : http://vigilbose.blogspot.com/2009/03/apache-commons-dbcp-and-tomcat-jdbc.html – BalusC

+0

DBCP는 오랫동안 사용되어 왔으며 약점은 잘 알려져 있습니다. 그것을 사용하는 사람은 이미 그것을 다루는 방법을 알고 있습니다. 우리는 그것을 통해 훌륭한 성과를 얻습니다. Tomcat Pool은 매우 새롭습니다. 나는 지금 그것에 뛰어 들고 싶지 않다. –

+0

정말 좋은 대답입니다. 내일 나는 모든 것을 시험해보고 돌아올 것이다. – Trick

관련 문제