대규모 시스템에서 테스트 및 개발을 위한 MySQL을 실행하는 경우가 많지만 때로는 작은 클라우드 인스턴스에서 MySQL을 실행하거나 랩톱에서 실행하고 싶을 때가 있습니다. 이러한 경우 MySQL 8 및 MySQL 5.7 메모리 소비가 매우 중요합니다.
MySQL 8과 MySQL 5.7을 비교할 때 MySQL 8이 더 많은 메모리를 사용한다는 것을 알아야 합니다. 동일한 워크로드를 실행하는 MySQL 8 및 MySQL 5.7이 있는 1GB VM에 대한 기본 테스트에서 다음 vmstat을 표시됩니다.
MySQL 5.7 vmstat 출력
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
4 0 65280 71608 58352 245108 0 0 2582 3611 1798 8918 18 9 11 33 30
4 0 65280 68288 58500 247512 0 0 2094 2662 1769 8508 19 9 13 30 29
3 1 65280 67780 58636 249656 0 0 2562 3924 1883 9323 20 9 7 37 27
4 1 65280 66196 58720 251072 0 0 1936 3949 1587 7731 15 7 11 36 31
MySQL 8.0 vmstat 출력
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
9 1 275356 62280 60832 204736 0 0 2197 5245 2638 13453 24 13 2 34 27
3 0 275356 60548 60996 206340 0 0 1031 3449 2446 12895 25 11 10 28 26
7 1 275356 78188 59564 190632 0 1 2448 5082 2677 13661 26 13 6 30 25
4 1 275356 76516 59708 192096 0 0 2247 3750 2401 12210 22 12 4 38 24
MySQL 8은 OS 캐시는 적게 사용하지만 약 200MB 더 많은 스왑을 사용하여 메모리가 할당됩니다.
“top”을 확인해 봅니다.
MySQL 5.7
MySQL 8.0
"top" 또한 MySQL8이 사용하는 더 많은 상주 메모리와 가상 메모리를 보여줍니다. 특히 가상 메모리는 이러한 VM에서 사용할 수 있는 물리적 메모리가 1GB를 훨씬 초과하기 때문에 주의해야 합니다.
그러나 실제로 "vmstat" 출력에서 알 수 있듯이 MySQL 8이나 MySQL 5.7은 메모리 공간이 많이 남아 있지 않더라도 스왑이 발생하지 않습니다. 그러나 일정 수준의 연결이 있거나 동일한 VM에서 응용 프로그램을 실행하려는 경우 스와핑이 발생합니다.
개발 환경에서 MySQL 8로 이동할 때 동일한 설정의 MySQL 5.7보다 더 많은 메모리가 필요하다는 점을 염두해 두어아 합니다.
'MySQL' 카테고리의 다른 글
MySQL 8.0 신기능 CTE(Common Table Expression) 활용 (0) | 2021.08.26 |
---|---|
MySQL Shell Upgrade Checker Utility (0) | 2021.08.24 |
pt-kill (0) | 2021.08.19 |
ONLY_FULL_GROUP_BY SQL 쿼리 실패 (0) | 2021.08.12 |
MySQL sorted index 생성 (0) | 2021.08.06 |