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"

  • 파일을 가져올때 압축해서 가져와서 패킷의 크기가 줄어 가져오는 속도가 빨라집니다.
  • 다만, 압축하는 로직이 들어가기 때문에 낮은 수치의 파일크기에서 압축을 하게되면 부하가 있을수있습니다.

+ Recent posts