mysql 서버에서 사용되는 물리적 메모리와 가상 메모리를 어떻게 해제하나요?

mysql 서버에서 사용되는 물리적 메모리와 가상 메모리를 어떻게 해제하나요?

내 CentOS 6.5에서는 여러 PHP 스크립트가 crontab을 통해 실행되며 모든 PHP 스크립트에는 최소한 하나의 데이터베이스 요청이 포함되어 있습니다. PHP 객체의 크기와 유형에 따라 일부 특정 경우에는 mysqld 서비스에 너무 많은 물리적 메모리가 할당됩니다.

때로는 1.7GB에서 15MB의 여유 메모리만 있고, 스왑 메모리도 95% 사용량에 할당될 수 있습니다. 서버 메모리를 해제하기 위한 유일한 대안은 mysqld 서버를 다시 시작하는 것이지만, 며칠 후에 메모리가 다시 거의 가득 찼습니다.

RESET QUERY CACHE;mysqld 재시작을 무시하기 위해 쿼리 캐시를 플러시 하려고 시도했지만 FLUSH QUERY CACHE;메모리 상태에는 아무것도 변경되지 않았습니다. 또한 실행을 시도했지만 sync && echo 3 | sudo tee /proc/sys/vm/drop_caches메모리 상태가 다시 동일합니다.

예를 들어, mysql 서버를 다시 시작하지 않고 모든 스크립트 실행 후에 실제 메모리와 가상 메모리를 해제하는 방법을 알고 있습니까?

답변1

MySQL이 메모리를 모두 잡아먹는다면 해당 값을 낮추거나 서버 RAM을 늘려야 합니다. MySQL에 16GB의 RAM을 사용할 수 있지만 8GB만 사용할 수 있다고 지시한 경우 문제가 발생합니다.

보통의 호텔 방에서 20명을 위한 파티를 열었는데 방이 너무 작다는 것을 알고 다음날 밤에 20명을 수용할 수 있기를 바라면서 다시 시도하는 것은 아닙니다. 더 큰 방을 예약하거나 더 적은 사람을 초대하세요.

관련 정보