1. PHP
단체메일을 발송하는데 시간이 오래 걸려 메모리 리밋을 올렸습니다.
php.ini
max_execution_time = 300
max_input_time = 300
memory_limit = 1024M
2. MySQL의 InnoDB Buffer Pool
/etc/my.cnf 또는 /etc/mysql/my.cnf 수정
[mysqld] # -------------- 메모리 관련 최적화 -------------- innodb_buffer_pool_size = 20G # 전체 RAM의 30~35% (InnoDB 데이터 캐싱) innodb_log_file_size = 512M # InnoDB 로그 파일 크기 innodb_log_buffer_size = 64M # InnoDB 로그 버퍼 크기 innodb_flush_log_at_trx_commit = 1 # 트랜잭션 안정성 확보 # -------------- 연결 및 쿼리 성능 최적화 -------------- max_connections = 300 # 동시 접속자 수 제한 thread_cache_size = 100 # 스레드 캐시 최적화 table_open_cache = 8000 # 테이블 캐시 개수 증가 query_cache_type = 0 # Query Cache는 비활성화 (MariaDB에서는 비효율적) # -------------- 임시 테이블 및 정렬 최적화 -------------- tmp_table_size = 256M max_heap_table_size = 256M sort_buffer_size = 4M join_buffer_size = 8M # -------------- 기타 성능 최적화 -------------- key_buffer_size = 512M # MyISAM 테이블이 있다면 적절한 값 설정 read_buffer_size = 4M read_rnd_buffer_size = 8M
sudo systemctl restart mariadb
3. Redis 캐시
현재 레디스가 사용하는 메모리 확인 명령어
redis-cli info memory | grep used_memory_human
> used_memory_human:908.60M