[英]Django MariaDB-Galera Perfermance on K8s
我目前正在嘗試為在 K8s 上以“大規模”運行的應用程序找到一個好的數據庫解決方案。 所以我開始嘗試使用 MariaDB Galera,而沒有任何進一步的經驗。 我注意到寫入性能很慢。 在單個實例 MariaDB 上,我可以在大約 2.75 秒(單表)內寫入 500 行,每行有 7 個字段。 使用 Galera,我需要大約 12-15 秒來完成相同的插入。 有時甚至超過20秒。 為什么?
我在帶有 NVMe 驅動器、10 Gbit 網絡和 Epyc CPU 的高端硬件上運行。 開銷應該很小,因為一切都在容器中運行。 這個“問題”只是 Galera 的本質還是我的配置有問題?:請參閱此處: https://pastebin.com/mvb3Ndww
我已經嘗試過query_cache_type
和query_cache_size
但到目前為止沒有任何真正的成功......
我的 CSI 是 openebs-hostpath,可通過每個容器/Pod 的本地附加磁盤實現最大性能。
我在 settings.py 中的數據庫設置:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'OPTIONS': {
'init_command': 'SET innodb_strict_mode=1',
'connect_timeout': 30,
'charset': 'utf8mb4',
},
'NAME': env.str('MYSQL_DATABASE'),
'USER': env.str('MYSQL_USER'),
'PASSWORD': env.str('MYSQL_PASSWORD'),
'HOST': env.str('MYSQL_HOST'),
'PORT': env.str('MYSQL_PORT'),
}
}
提前致謝
一次INSERT
一行很慢。 這些更快:
INSERT
中的許多行)。 一次推薦 100 到 1000 行。LOAD DATA INFILE
查詢緩存會減慢插入速度。 無論如何,在 Galera 上是不允許的。
節點相距多遠(以毫秒為單位)?
這些都非常高,go 回到默認值:
tmp_table_size=2G
max_heap_table_size=2G
有些地方指定utf8,有些地方指定utf8mb4。 后者是優選的。 不一致可能會導致一些性能滯后。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.