Server.xml
maxThreads
- 기본값 200
- maxThreads 값이 최대 값인 750을 넘을 경우 두 대의 Tomcat을 이용해 클러스터링 구성을 하는 것이 좋다.
- active user 수
- 순간처리할수있는 트랜잭션 수
- 일반적으로 100내외로 설정하는것이 좋음.
acceptCount=10
- Request Queue의 길이 설정
- idle thread가 없을경우(thread 가 full일경우) queue에 쌓여서 idle thread가 생길때까지 대기하게된다.
- queue에 쌓였다는것은 이미 사용가능한 thread 모두 써도 처리를 못하는것이기 때문에 장애일 가능성이 높다.
- 그래서, queue길이는 길게 주는것보다 짧게 주어 에러코드를 내려주어 에러를 처리하는것이 좋다.
- queue길이가 길면 대기하는시간이 길어져 다른 장애로 전파되는 경우가있음.
- 순간 과부화를 막기위해 0보다는 10내외로 짧게 준다.
maxConnection="8192"
- 하나의 톰캣인스턴스가 유지할 수 있는 Connection의 수
- 현재 연결되어 있는 실제 Connection의 수가 아니라 현재 사용중인 socket fd (file descriptor)의 수
tcpNoDelay="true"
- 작은 패킷들을 모아서 버퍼 사이즈가 다 차면 모아서 보내는 로직을 사용
- 버퍼가 4K라고 가정할때, 보내고자 하는 패킷이 1K이면 3K가 찰 때 까지 기다리기 때문에, 바로바로 전송이 되지 않고 대기가 발생
- 해당옵션을 사용하면 버퍼가 차기전에 바로바로 전송하기때문에 전송속도가 빨리진다.
- 전송속도는 빨라지나 여러번보내기때문에 네트워크 트래픽은 증가된다. (요즘은 망 속도가 좋아 대역폭의 이슈는 적음)
maxHttpHeaderSize
enableLookups="false"
compression="on"
- 파일을 가져올때 압축해서 가져와서 패킷의 크기가 줄어 가져오는 속도가 빨라집니다.
- 다만, 압축하는 로직이 들어가기 때문에 낮은 수치의 파일크기에서 압축을 하게되면 부하가 있을수있습니다.
'서버 > 성능과 튜닝' 카테고리의 다른 글
성능튜닝을 위한 Linux Thread 수 확인 및 Queue 길이 확인 (0) | 2020.05.19 |
---|---|
성능튜닝 관련 application 설정 (0) | 2020.05.19 |
성능테스트 프로세스 (0) | 2020.05.19 |
API 성능테스트 시 고려사항 (0) | 2020.05.06 |
JVM GC 알고리즘 및 튜닝 (0) | 2020.02.09 |