일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 |
- jenkins
- elasticsearch
- IntelliJ
- java
- Spring Boot
- AWS
- ubuntu
- javascript
- ReactJS
- redis
- Web Server
- db
- Spring
- 요리
- jsp
- devops
- Git
- JPA
- Oracle
- Design Patterns
- linux
- it
- 맛집
- springboot
- Gradle
- MySQL
- php
- tool
- laravel
- docker
- Today
- Total
목록2021/02 (4)
아무거나
tcp_max_tw_buckets 값 설정 tcp_max_tw_buckets 는 시스템이 동시에 가질 수 있는 timewait 소켓의 최대 갯수 해당 값을 초과하면 time-wait 소켓을 즉시 파괴하고 경고 출력 기본값 보다 낮추면 안됨 현재 수치 확인 명령 $ cat /proc/sys/net/ipv4/tcp_max_tw_buckets 적용 // 적용 $ echo "net.ipv4.tcp_max_tw_buckets=2000000" >> /etc/sysctl.conf // 영구적용시 하기 명령 실행 $ sysctl -p Soft Limit, Hard Limit 영구 설정 일반적으론 soft limit과 hard limit을 동일하게 적용한다 [/etc/security/limits.conf] ... # "..
Nginx Keepalive TIME_WAIT 소켓이 쌓이는 근본적인 문제 해결 방법 Ngnix와 웹 애플리케이션 서버(Tomcat + Spring Boot) 간의 요청이므로 TCP Handshake를 한다. 하지만 빈번하게 통신이 발생하면 응답시간에 대한 레이턴시가 발생할 수 있다. 즉, 모든 요청에 TCP Handshake가 발생하므로 불필요한 리소스 낭비가 생기므로 keepalive가 필요함 keepalive란 한번 맺은 세션을 요청이 끝나더라도 유지해주는 기능 -> 매 요청마다 새로운 세션을 만들지 않고, 지정된 숫자만큼의 세션을 연결한 뒤 그 연결을 통해 요청을 처리 설정적용 [/etc/ngnix/nginx.conf] ... map $http_upgrade $connection_upgrade {..
커널 파라미터 튜닝 예시: Nginx가 9091 포트로 연결하는 과정에서 문제가 발생(하나의 서버에 Nginx + app 이 있을 때 Nginx가 Client 기준으로 되므로 포트 고갈 이슈 발생) 소켓 상태 확인 (만약 timewait가 20xxx개면 timewait 소켓이 2만개나 되는것이다) // 소켓 상태 확인 $ ss -s // 소켓 상태 확인(자세히) $ netstat -napo | grep -i time_wait // 9091 포트가 목적지인 timeout 소켓 개수 확인 $ netstat -napo | grep -ic 9091 해결방법 Local Port 범위 증가 (일시적으론 대체가 가능하나 결국 지속적인 요청으로 인하여 포트의 고갈이 다시 발생) $ echo "10240 65535" >..