簡體   English   中英

Django MariaDB-Galera 在 K8s 上的性能

[英]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_typequery_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM