# my.cnf 파일에 추가
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mariadb-slow.log
long_query_time = 1 # 1초 이상 걸리는 쿼리 기록
로그 분석:
mysqldumpslow -s t /var/log/mysql/mariadb-slow.log
SHOW FULL PROCESSLIST;
EXPLAIN SELECT ... 쿼리문;
CREATE INDEX idx_name ON table_name(column_name);
# my.cnf 파일 조정
query_cache_size = 64M
query_cache_type = 1
cat /etc/php/7.x/fpm/pool.d/*.conf
; 프로세스 관리 최적화
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
; 타임아웃 설정
request_terminate_timeout = 300s
php_admin_value[memory_limit] = 256M
emergency_restart_threshold = 10
emergency_restart_interval = 1m
sudo systemctl restart php7.x-fpm
bash <(curl -Ss https://my-netdata.io/kickstart.sh)브라우저에서 http://서버IP:19999 접속
sudo apt install monit/etc/monit/conf.d/mariadb설정 예시:
check process mariadb with pidfile /var/run/mysqld/mysqld.pid
start program = "/etc/init.d/mysql start"
stop program = "/etc/init.d/mysql stop"
if cpu > 80% for 5 cycles then alert
if memory > 80% for 5 cycles then restart
# Prometheus 설치
sudo apt install prometheus
# Node Exporter 설치
sudo apt install prometheus-node-exporter
# Grafana 설치
sudo apt install grafana
sudo nano /etc/logrotate.d/nginx sudo nano /etc/logrotate.d/php-fpm
적절한 모니터링과 설정 조정으로 서버 성능을 개선할 수 있습니다. 부하가 가장 큰 MariaDB부터 최적화하고, PHP-FPM 설정을 웹사이트 트래픽에 맞게 조정하는 것이 중요합니다.