WebServers

Jiny's 개발 일기·2023년 3월 2일
0

Projects

목록 보기
7/8

Http 통신도 결국엔 소켓 통신의 하나이다. Linux에서 file description을 제대로 설정할 수 있다면 서버의 성능을 같이 올려줄 수 있다.

10000 thread / 2 Ramp-up / 1 Loop

  • 톰캣만 올린 상태
  • 커널 파라미터
  • Xmx2G Xms2G

  • 메모리 총 사용량 14%

  • 톰캣만 올린 상태
  • 커널 파라미터
    • open files 수정
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 14948
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 10240
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 4096
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

  • 메모리 총 사용량 18%

  • 톰캣만 올린 상태
  • 커널 파라미터
    • open files 수정
    • max user processes 수정
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 14948
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 10240
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 40960
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

  • 메모리 총 사용량 16%
  • CPU 리소스가 모자람
  • 그래서 CPU는 4개로 늘려서 하니까 TPS 폭증

Nginx

  • nginx server
    • 2 cpu
    • 4g ram
  • tomcat server
    • 4 cpu
    • 4g ram

  • request도 실패하고 성능도 하락하는 이상한 현상

  • tomcat server의 성능을 낮추고
    • 2 cpu
    • 4g ram
  • nginx 성능 튜닝
    • worker_rlimit_nofile 300000;
    • worker_connections 10240;

  • 최대 TPS가 폭증함
  • Linux의 최대 프로세스 개수, File description수를 올리는 것으론 부족하다.
    • Nginx가 사용하는 file description수도 같이 늘려 줘야한다.
    • file description이 늘어난 만큼 worker process가 핸들링 할 수 있는 커넥션의 개수도 늘려줘야한다.
    • 물론 ram은 4 cpu때 보다 늘어나긴 했지만 사실 복잡한 연산을 하지 않는 이상 memory가 부족한 경우는 잘 없다.
    • cpu 개수를 보았을 때는 같은 자원을 사용했지만 nginx를 같이 사용하는 것이 최대 TPS가 더 높고 안정적이다.

  • worker_connections: 200000

  • worker_connections: 300000

  • 최대 파일 개수보다 살짝 낮게 하는 것이다 더 좋다.
    • error가 0.13% 정도 나왔음
profile
옛날 블로그 주소 : https://jeongjin984.github.io/

0개의 댓글