| CMS/프레임워크 | Rhymix 2.1 |
|---|---|
| 개발 언어 | PHP 7.4 |
php7.4v로 만든 파일을 위젯페이지에 넣어 사용하는데요.
mariadb 11v에서 order by number desc 사용시 서버용량이 2G 이상 갑자기 줄어들어 용량 부족이 발생하는데요.
임시방편으로 터미널에서
sudo find /var/lib/docker/containers/ -name "*-json.log" -exec sh -c 'cat /dev/null > "{}"' \; 하면 temp 또는 log 용량이 비워진다고 해서 했더니, 4G가 확보되네요. 그런데 또 금새 다시 용량이 만땅됩니다.
mysql 5.5v (utf8_general_ci )에서는 이런일 없었는데, mariadb 11v (utf8mb4_unicode_ci ) 으로 옮긴후 발생합니다.
구글링해보니 mariadb 11v 는 order by 사용시 문제가 있다고도 하는데,
매번 터머널에 들어가서 반복해서 삭제할 수도 없고 근본 조치 방법이 있을까요?
xone
Lv. 1
댓글 3
도커 로그파일을 삭제했더니 용량이 확보되었다는 말씀이죠? 그 로그파일에 대체 어떤 내용이 그렇게 많이 기록되었는지 확인해 보셨으면 좋았을 텐데요. ㅎㅎ
원론적으로... 용량이 큰 테이블에서 인덱스를 잘 안 타는 ORDER BY 쿼리를 하면, 그 많은 데이터를 메모리에서 정렬하기에는 메모리가 부족하기 때문에 임시파일을 만들어서 filesort를 하게 됩니다. 물론 쿼리 속도는 안드로메다로 가버리죠. 이런 현상이 발생하는 조건은 DB 튜닝값이나 테이블 최적화 상태에 따라 다르고, 버전마다 sort_buffer_size 등의 기본값도 다 다릅니다.
그런데 삭제하신 것은 filesort에 사용하는 임시파일이 아니라 그냥 도커 로그파일인 것 같으니, 위의 원론적인 설명은 참고만 하시고 좀더 구체적인 로그 내용을 살펴보셔야 할 것 같습니다. 단순 임시파일이 아니라 에러를 왕창 뿜고 있었을 수도 있거든요.
그리고 php7.4v, mariadb11v 같은 표현은 일반적으로 버전을 표기하는 방법과 다르기 때문에 검색에 어려움을 겪거나 혼동이 발생할 수 있습니다. MariaDB 11 버전대만 해도 11.4, 11.8 등 여러 가지가 있는데 어느 버전에 문제가 있다는 것인지 모르겠고요. 공개적인 장소에서는 공식적인 표기법을 따르시는 것을 추천드려요.^^
관리자 서버 보기 에
rhymix_version : 2.1.35
php : 7.4.3 (64-bit)
db.type : mysql (innodb, utf8mb4)
db.version : 11.4.3-MariaDB-ubu2404
네, 도커에서 사용하고 있구요.
외부용 php 5.2버전(mysql5.5)에서 사용하던 코드를 rhymx 사용환경의 위젯페이지에 낑겨넣어 사용할려고 이리저리 수정하던중 발생했던 에러가 있었는데, 오류가 발생하면 금방 2G정도 잡아먹었습니다. 어느파일에 문제가 있는지 몰라서 구글링에서 알려준대로 위 본분의 소스로 호스트 터미널에 복붙하여 용량을 확보했습니다. ORDER BY 쿼리를 써야 하는데 mariadb 11 은 mysql5.5 와는 다르게 써야 하는 그 무엇이 있는지요? mysql5.5 에서는 아무런 문제가 없어거든요.
기본적인 ORDER BY 문법은 MySQL 초기 버전이든 MariaDB 최신 버전이든 차이가 없습니다. 라이믹스 게시판에서도 ORDER BY를 많이 사용하지만 아무 문제 없고요.
용량을 큰 파일을 삭제하는 방법을 알려준 AI에게, 삭제하기 전에 거기에 어떤 내용이 들어 있는지 일부라도 확인하는 방법을 물어보세요. 몸 속에서 덩어리가 발견되면 조직검사를 해봐야 이게 암인지 그냥 혹인지 알 수 있잖아요? 문제의 파일도 마찬가지입니다. 속에 뭐가 들어 있는지 봐야 왜 생겼는지 알 수 있지요.