mysql 튜닝 및 램 할당 방법
CMS/프레임워크 | Rhymix 1.9 |
---|---|
개발 언어 | PHP 7.0 |
안녕하세요 최근에 동접이 늘면서ㅠㅠ
서버가 느릿느릿해지는데요
현재 서버 램 8G 입니다.
top명령어랑
free - m 명령어 참고해서 올립니다.
질문
1)
mysql 에 램을 4.7%밖에 제가 할당을 안한건가요?
이부분에서 mysql 램을 할당을 더 시키려면 어떻게 해야할지 잘 모르겠네요 ㅠㅠ
2)
innodb_buffer_pool_size
사이즈는 현재 메모리의 20%로 할당되어 있습니다.
이 용량을 늘려도 될지 의문입니다.
댓글 9
램은 넉넉합니다. 7987M 중 2689M 사용중이고, 스왑 사용량도 무시할 수 있는 수준입니다.
innodb_buffer_pool_size를 램의 20%로 설정해 놓았는데
실제로는 4.7%밖에 사용하지 않고 있다면 3가지 가능성이 있습니다.
1. 설정 변경 후 MySQL을 재시작하지 않아서 적용이 안됨
2. 대부분의 테이블이 MyISAM 형식이어서 InnoDB 설정이 적용이 안됨
3. 실제 DB 용량이 너무 작아서 램 용량의 4.7%(약 375MB) 이상 쓸 일이 없음
top 실행 후 1을 누르면 코어별 사용량을 따로 볼 수 있습니다.
님이 체감하기에 쿼리속도가 느리면 문제가 있는 것이고, 그렇지 않으면 몇%라도 상관없습니다.
140%가 나온다는 것은 최소 2코어 서버라는 뜻이고, 2코어 이상에서 140%는 전혀 포화상태가 아니니...
99% = 어이쿠 큰일났다!
140% = 음 이거 좀 살펴봐야겠군
그러나 MySQL의 CPU 점유율은 어느 정도까지는 램 할당량에 반비례하는 경향이 있고,
솔까말 4.7%는 너무 적어 보이니 한번쯤 확인해 보시는 것이 좋겠네요.
mysql 재시작 해보려고 합니다.
#service mysqld restart
혹시 재시작할때 웹사이트가 끊어질까요?
그리고 MylSAM 형식인지는 어떻게 확인해야할까요?
phpMyAdmin을 사용하거나, DB에 직접 접속하여 SHOW TABLE STATUS; 쿼리를 돌려보면 테이블들이 MyISAM인지 InnoDB인지 알 수 있습니다. XE에서 DB type을 mysqli_innodb로 변경하더라도 신규 생성되는 테이블에만 적용되고 기존 테이블은 MyISAM 그대로일 수 있습니다.