서버 세팅값 (CPU가 너무 높아요) 질문드려요
본문
서버환경 :
- CPU:
- 8 vCore
- RAM:
- 12 GB
- SSD:
- 240 GB
일정 시간이 되면 CPU가 확 올라갑니다. 물론 이때가 동접자가 가장 많은 타이밍이긴 해요.
(대략 200명...)
그런데 램을 확인해보면 너무 널널합니다.
혹시 CPU 사용량을 줄이고 램 사용량을 늘릴 수 있는 방법이 있을까요?
센토스, 아파치, 마리아디비 환경이고
my.cnf는 다음과 같이 설정해뒀습니다.
[mysqld]
skip-host-cache
skip-name-resolve
read_only=0
slave-skip-errors=all
#key_buffer=256M
key_buffer_size=48M
max_allowed_packet = 1M
query_cache_type=1
query_cache_limit=16M
query_cache_size=256M
join_buffer_size=64M
table_cache=512
table_open_cache = 512
tmp_table_size=256M
max_heap_table_size=24M
innodb_sort_buffer_size=64m
innodb_buffer_pool_size=8G
innodb_buffer_pool_instances=32
innodb_write_io_threads=8
innodb_read_io_threads=8
max_connections=2048
interactive_timeout=30
wait_timeout = 30
thread_cache_size=20
thread_concurrency = 16
sort_buffer_size = 6M
read_buffer_size = 3M
read_rnd_buffer_size = 3M
myisam_sort_buffer_size = 32M
# Write slow query log
slow_query_log=1
long_query_time=3
slow_query_log_file=/var/log/mysql/slow.log
skip-name-resolve
log-error=/var/lib/mysql/mysql.err
어디 부분을 손 봐주면 cpu대신 램 사용량이 올라갈까요?
답변주시면 감사하겠습니다!
답변 7
우선 질문자체가 불가능해요
cpu 랑 메모리 사용량을 서로 바꾼다는것
cpu 사용률이 높을때 부하율도 높은지랑
사이트속도도 느린지 디비응답속도나 슬로우쿼리 등 봐야할게 생각보다 많습니다
우선 가장간단한건 위에서 말씀해주신게 대부분 맞고요
추가적으로 시스템엔지니어 입장에서 보자면 가장간단하고 확실한건 디비서버랑 웹서버 분리입니다.
본인이 운영하는 서버인가요?
사이트가 느려지는게 아니라면 문제되진 않는것 같네요.
이건 수치를 오르락 내리락 한다고 되는게 아니에요.
해당 시간대에 유저가 어디에 집중해 있는가를 채크해보세요.
램이 여유롭다면
캐쉬를 많이 활용해 보세요.
top 명령어로 어떤 프로세스가 cpu를 많이 점유하는지도 확인해 보세요.
DB 튜닝도 고려해 보세요
위 부분이 발생되는 CPU 사용빈도를 어디서 발생되는지 부터 체크해 보셔야 할듯 합니다.
설정으로 드라마틱하게 이런 현상을 커버할수 있는 방법은 없다고 봐야 하고
쿼리/코드 개선이 답일 확률이 높습니다.
느낌상으론 apache 때문에 cpu 사용률이 증가하는 부분 같으신데
설정만으론 한계가 있으실테고 제 1순위는 우선 유입트래픽이 정상적인
트래픽인지부터 로그를 열어서 확인해보시는게 순서일것 같습니다.
정상트래픽이라면 퍼포먼스관련 설정부분을 손대시는게 맞을실테고
불량트래픽 또는 비정상 유입이라면 차단관련을 손보시는게 맞을것 같습니다.