문제

나는 스트레스 테스트를하고있다 JMeter 웹 응용 프로그램 (Spring, Struts2 REST로 제작 된 PostgreSQL을 사용).

내 앱으로 일반 사용자의 시나리오를 시뮬레이션하고 있습니다.

4 GET, 3 삽입, 20 개의 업데이트 호출.

서버 사양 :

4 코어 인텔 Xeon X5365 3GHz

8GB RAM

단일 320GB SATA 디스크

OS : 우분투 8.10 32 비트

DB : PostgreSQL 8.4

Tomcat 6.0.18

Java 1.6.0_14

결과는 서버가 약 130 개의 동시 트랜잭션을 처리 할 것임을 보여줍니다. 이 숫자가 가능합니까? 온라인과 비교할 결과가 있습니까?

도움이 되었습니까?

해결책

병목 현상은 데이터베이스에 있으므로 데이터베이스 성능을 모르고 비교하기가 매우 어렵습니다.

우리는 비슷한 기계를 가지고 있습니다 (16GB RAM, Tomcat 5.5 실행). 피크 하중에서는 256 개의 동시 연결을 쉽게 사용할 수 있습니다. 우리는 Maxthreads를 512로 바꾸려고 토론하고 있습니다.

일부 튜닝 팁,

  1. 아파치를 프론트 엔드로 실행하는 경우 사용하십시오 mod_jk. 그 성능은 훨씬 낫습니다 mod_proxy.
  2. HTTP를 직접 제공하거나 mod_proxy를 사용하는 경우 Tomcat 6의 NIO 커넥터를 사용하십시오.
  3. 스레드 풀 (Maxthreads)이 충분히 커지고 기본값은 200에 불과합니다.
  4. Tomcat을 상태로 만들었습니다. 특히 httpsession을 사용하지 마십시오. 상태는 앱에서 메모리 누출을 일으키고 성능을 점진적으로 저하시킬 수 있습니다. 모든 주를 데이터베이스 또는 클라이언트 (쿠키)로 푸시하십시오.
  5. 데이터베이스 풀링 (DBCP)을 사용하십시오. 우리는 mySQL을 가지고 있으며, JDBC 드라이버는 매우 수다 스럽습니다.
  6. JMeter의 한 인스턴스를 실행하면 병목 현상이 될 수 있습니다. 실제 생산 부하를 시뮬레이션하기 위해 다른 네트워크에서 여러 슬레이브를 실행하십시오.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top