반응형
전체 시스템 부하는 세션 + 쿼리 관리 이슈와 연결된다.
시스템이 느려지거나 먹통되는 이유는 보통, 세션이 쌓이거나 쿼리가 느리게 동작하기 때문이다.
→ 세션이 메모리를 먹고, 쿼리가 CPU를 잠근다.
📌 세션 관리가 시스템 부하에 미치는 영향
세션 = 사용자 수 만큼 생기는 저장소
사용자 1명 접속 → 서버 메모리에 세션 1개
사용자 1000명 접속 → 세션 1000개
사용자 10만 명 접속 → 서버 메모리에 10만 개 쌓임 😵
문제는
세션을 계속 들고 있으니까, 메모리 누수처럼 점점 RAM을 먹는다.
심하면 서버가 OOM (Out Of Memory) 으로 죽어버린다.
HttpSession session = request.getSession();
// 여기에 무거운 객체 넣으면 메모리 펑
session.setAttribute("userData", new BigFatObject());
📌 쿼리 관리가 시스템 부하에 미치는 영향
쿼리가 느리면 → 서버 하나가 막혀버림
한 사용자가 주문 버튼을 누른다.
근데 그 주문 처리 쿼리가 너무 느리다.
그럼 → 해당 요청을 처리하던 서버 쓰레드가 붙잡혀버린다.
동시에 수십 명이 비슷한 요청을 하면? → 서버 쓰레드 부족 → 대기행렬 폭발 → 서버 다운
SELECT * FROM order_table WHERE customer_name LIKE '%김%';
-- 인덱스 미사용, 풀스캔 → 느림
🔥 그래서 둘을 합치면
세션이 많아 → 메모리 압박
쿼리가 느려 → CPU/DB/쓰레드 압박
그 결과 👉 시스템 전체 부하 증가 → 속도 저하 → 장애 가능성↑
그래서 현업에서는
시스템 부하를 줄이기 위해 여러 방안을 고안한다.
항목 | 해결책 |
세션 부하 | - Redis 세션으로 분산- TTL 짧게 설정- 로그인 상태 최소 정보만 유지 |
쿼리 부하 | - 인덱스 최적화- N+1 문제 해결- 배치성 쿼리 분리 |
시스템 부하 모니터링 | - APM 도구(NewRelic, Pinpoint, Actuator 등)- GC, Memory, Thread 수 주기적 체크 |
반응형
'컴퓨터 > 네트워크' 카테고리의 다른 글
[네트워크] 세션 클러스터링 | 이중화 시 서버들이 사용자를 기억하는 방법 (0) | 2025.05.03 |
---|---|
[네트워크] 이중화(HA) 및 세션 관리 | 끊기지 않고 돌아가는 프로그램을 위한 기술 (0) | 2025.05.02 |
[리눅스] centos 7,8,9 mariadb 설치하기 | 연결테스트 (0) | 2024.10.08 |
[리눅스] 가상 OS-웹 개발💻5a-1 | VirtualBox 6 + CentOS 8 | linux _webtob 설치 후 서버 기동(1) (0) | 2024.05.30 |
[리눅스] linux _jdk 설치, JAVA_HOME 환경변수 잡기 (1) | 2024.05.29 |
댓글