[wanted Docker Series] 16.optimizewebserver
October 16, 2024
웹서버 성능 최적화
클라우드 환경에서 고려해야 하는 웹서버 성능 최적화를 위한 모니터링 전략
- 빠른 응답 시간
- 높은 가용성: 웹서버의 다운타임을 최소화
- 확장성: 트래픽 증가에 따라 서버 자원을 유연하게 확장할 수 있도록 함
- 효율적인 자원 사용: 서버 자원을 최적화하여 비용을 절감하고 성능을 극대화
- 안정성: 웹서버가 안정적으로 동작하여 사용자가 신뢰할 수 있도록 한다.
성능 최적화를 위해서 고려할 요소들
- 하드웨어
- 네트워크
- 대역폭: 네트워크에서 데이터를 전송할 수 있는 최대 용량
- 트래픽: 네트워크를 통해서 주고 받는 데이터의 양을 의미
- 코드 최적화
- DB 최적화
- 캐싱
- Redis: Ram에 저장하며 매우 빠른 속도로 읽고 쓸 수 있다. 문자열, 해시, 리스트, 셋, 정렬된 셋 등의 데이터를 저장할 수 있다.
- Memcached: DB에서 자주 요청되는 데이터를 메모리에 저장해서 빠르게 접근할 수 있게 해주는 시스템
- 비교
- Redis가 더 다양한 데이터 구조와 기능을 제공, 데이터 영속성과 고 가용성을 지원
- Memcached는 간단한 키-값 형태의 데이터 캐싱에 특화되어 있고, 매우 높은 성능을 제공
- 로드밸런싱: 여러 서버에 트래픽을 분산시켜 서버 과부하를 방지하고 성능을 최적화
- CDN: 전세계에 분산된 서버 네트워크를 통해서 콘텐츠를 사용자에게 빠르게 전달
모니터링에 고려해야할 요소
- CPU 사용률
- 메모리 사용률
- 디스크 I/O
- 네트워크 트래픽
- 응답시간
- 에러 로그
클라우드 환경에서 성능 최적화
- 오토스케일링
- 인프라 최적화
- 컨테이너화
- DB 최적화
- 캐싱 전략
- 최신 기술 사용