돌고 돌아 mariadb 정보
돌고 돌아 mariadb본문
24년 4월 22일 mysql 5.x 를 사용하고 있었는데
slow query 도 많이 생기고 DB서버가 자주 다운되며
잘 살아나지 않는 겁니다.
https://sir.kr/cm_free/1681496
다행히도 mysql 8.x 로 replication 하고 있던 서버가 있던지라
급하게 dns 변경하면서 그 서버로 옮기게 되었죠.
그랬더니 그 서버에서는 이전 서버보다도 더 부하가 걸리더군요.
원인을 찾던중 query cache 라는 기능이 사라졌다는 것을 알게 되었습니다.
"고도의 동시 작업 부하에서의 한계로 인해 MySQL 5.7부터 쿼리 캐시 기능이 사라졌고 MySQL 8.0에서 완전히 제거되었습니다. MariaDB는 여전히 쿼리 캐시를 유지하고 있지만, 이 기능에 의존하기로 결정할 때 미래의 호환성과 특정 작업 부하의 특성을 고려하는 것이 중요합니다." 라고 chatGPT가 알려주네요.
그래서 다시 mariadb 로 마이그레이션을 했습니다.
(mariadb 는 mysql 의 fork 버전이죠.)
혹시나 mysql 8.x 로 옮겼는데 DB 쪽 부하가 걸리는 현상이 나타나면 이 부분을 확인해 보시기 바랍니다.
thisgun 님이 수고했습니다. 저는 구경만 ...
https://sir.kr/cm_free/1682425 제가 수고했다고 하셔서요. ㅎ
6
베스트댓글
@키스 AWS 같은 관리형 서비스 등에서는 외부 캐시 서비스를 해주고 있어서 이제 캐시는 따로 관리해 주는 서비스로 빼려고 하나봅니다.
@리자
AWS 란게 사용량이 적을때 비용이 절감이 되는데
사용량이 일정 이상 올라가면 온프래미스보다 몇배는 가격이 .. 후덜덜 해집니다 ㅠㅠ
특히, 온프래미스 시스템을 그대로 옮긴다면 비용이 늘면 늘었지 줄진 않더라구요 ㅠㅠ
--
만약 AWS 알아보신다면
특정 파트너사를 통해서 AWS로 이전하시면 비용할인이 되는 부분이 좀 있더라구요
보통 클라우드프론트 같은 캐시서비스에서 90% 까지 할인율이 적용되니 알아보셔도 좋을거에요^^
수고하셨습니다 ^^
댓글 18개
8 버전부터는 쿼리 캐시가 사라졌군요
좋은 정보 감사합니다.
@똥싼너구리 그렇다고 하네요.
우여곡절이 있었군요. 다들 수고 많으셨네요.
그런데 문득 드는 생각이,
그럼 MySQL 8.0는 앞으로 캐시가 필요할 때 어떻게 대응하려는 걸까요? 아예 쓰지 말라는 걸까요?
@키스 아무래도 성능에 안좋다고 판단했으니까 없앴겠죠?
@키스 AWS 같은 관리형 서비스 등에서는 외부 캐시 서비스를 해주고 있어서 이제 캐시는 따로 관리해 주는 서비스로 빼려고 하나봅니다.
@똥싼너구리 신경을 덜 쓰려고 옮기고자 하는데 비용도 비용이고, 데이터량이 좀 되니까 옮기기가 쉽지 않네요 ㅠ
@리자
AWS 란게 사용량이 적을때 비용이 절감이 되는데
사용량이 일정 이상 올라가면 온프래미스보다 몇배는 가격이 .. 후덜덜 해집니다 ㅠㅠ
특히, 온프래미스 시스템을 그대로 옮긴다면 비용이 늘면 늘었지 줄진 않더라구요 ㅠㅠ
--
만약 AWS 알아보신다면
특정 파트너사를 통해서 AWS로 이전하시면 비용할인이 되는 부분이 좀 있더라구요
보통 클라우드프론트 같은 캐시서비스에서 90% 까지 할인율이 적용되니 알아보셔도 좋을거에요^^
@해피아이 thisgun님 건빵 좋아하는지 물어볼게요
수고하셨습니다 ^^
좋은정보 감사합니다!! 꼭 기억하겠습니다!
그럼 서버 업체는 어떤곳으로 했나요? aws? 스마일서브?
참고해서 저도 옮겨볼까하고...
@리오닥터 여러대의 서버를 운영하므로 스마일서브, AWS 등등 이용하고 있습니다. mysql 서비스 문제이므로 서버를 어디서 사용하시는지는 크게 관련이 없습니다.
@리자 아! 그럼 리자님이 쓰신글을 요약하자면 쿼리 캐싱이 있는 마리아 디비로 옮겼다는거죠?
테스트용으로 8.x 써보니 예전 버릇대로? 쿼리캐시 세팅해보니 오류 뱉어서 없어졌단걸 알았네요.
라이트세일은 저렴하지 않나요?
https://sofans.io/community/13
이런 크레딧 지원 프로그램도 있습니다.
query_cache 는 원래 끄고 쓰는거라고 배웠습니다.
query_cache 에서 캐싱된 항목이 많은 경우, 해당 항목을 찾을때 lock 이 걸립니다.
이런 lock 컨디션이 많아지면(사용자 수에 비례) 오히려 캐싱에 의한 향상보다는 lock 에 의한 속도 저하가 더 심해집니다.
동접자가 많은 상태에서 mysql processlist 를 보시면 wait for query_cache lock 이 자주 보이게 될겁니다. (이부분을 해소할려면 query_cache 를 끄는게 좋습니다.)
고생하셨습니다. 구경하냐고. ^^