저사양 서버 성능 최적화 하기 (#2 MySQL/PHP)
이번에는 MySQL과 PHP 입니다. 설정할 것들이 그렇게 많진 않습니다. (제가 지식이 얕아서..)
1. MySQL (my.cnf)
우선 MySQL부터 보겠습니다. MySQL의 설정파일은 패키지로 설치하셨다면 /etc/my.cnf 파일이 되겠습니다.
[mysqld] skip-locking key_buffer = 16K max_allowed_packet = 1M table_cache = 4 sort_buffer_size = 64K read_buffer_size = 256K read_rnd_buffer_size = 256K net_buffer_length = 2K thread_stack = 64K # InnoDB 사용시 추가 옵션 innodb_buffer_pool_size = 16M innodb_additional_mem_pool_size = 2M innodb_log_file_size = 5M innodb_log_buffer_size = 8M innodb_flush_log_at_trx_commit = 1 innodb_lock_wait_timeout = 50 [mysqldump] quick max_allowed_packet = 16M [mysql] no-auto-rehash [isamchk] key_buffer = 8M sort_buffer_size = 8M [myisamchk] key_buffer = 8M sort_buffer_size = 8M [mysqlhotcopy] interactive-timeout
위 내용만 복사 붙여넣기 하시면 총체적 난국이 올 수 있습니다. 본인 서버의 설정과 비교해 없는 부분은 추가해주시고 값이 다르다면 변경해주시기 바랍니다. 그리고 기존 설정 항목을 삭제하진 마세요. 보시면 아시겠지만 대부분 버퍼에 대한 설정입니다. 버퍼 사이즈를 많이 잡게 되면 그만큼 많은 리소스를 잡고 있는게 되어버리니 현재 상황에 알맞게 조정해주시는게 중요합니다. 그리고 개인 블로그나 크지 않은 사이트를 운영하신다면 DB 스토리지 엔진을 MyISAM 으로 사용하시는 것도 나쁘지 않습니다. InnoDB보다 퍼포먼스가 좋기 때문입니다. 하지만 전 InnoDB를 사용합니다.
2. PHP (php.ini)
PHP 역시 캐시나 메모리 설정에 관련한 부분을 위주로 설정하면 됩니다.
memory_limit = 128M -> 88M (잿팩 설치시 88M 미만 설정하면 메모리 오류 발생) ;realpath_cache_ttl 주석 풀고 120에서 300으로 설정 realpath_cache_ttl = 300 ;realpath_cache_size 주석 풀고 16K에서 1M으로 설정 realpath_cache_size = 1M
여기서 특별한건 없지만 워드프레스를 사용중이신 분들 중에 통계용 플러그인인 “젯팩” 을 사용하신다면 memory_limit을 줄이기 보다 좀 더 넉넉하게 잡아주시거나 기본값(128M)으로 두는게 좋을 수 있습니다. 무리하게 줄이면 메모리 초과 오류를 보실 수 있기 때문입니다.