CPU Governor 對 MySQL 效能的影響

Percona 的「CPU governor performance」這篇研究在 Linux 下 CPU Governor 對 MySQL 效能的影響。

由於是要測試 CPU 效能,所以作者將資料量控制在 memory fit,避免 i/o 造成的影響。

探討了兩種 driver (acpi-cpufreq 與 intel_pstate) 與兩種 governor (ondemand 與 performance),交叉後總共四種不同的組合。給了兩張圖,不過我覺得後面這張比較清楚:

黑色線是 intel_pstate + performance 的組合 (當基準),三個條狀圖就是另外三種。

可以看到藍色的 acpi-cpufreq + performance 效能其實跟基準線的 intel_pstate + performance 差不多。而只要是 ondemand 效能就掉很多... 所以伺服器開 performance 就是了 :o

Salt 要做到「當某個檔案存在時,執行某個指令」的方法...

愈用愈有感覺 SaltStack 是一堆 workaround 的集合,一開始在設計整個系統時沒有規劃好,然後一直堆上去。

標題的這個問題是出自於 Ubuntu 預設會將 CPU 調節成 ondemand,方式是透過 /etc/rc*.d/ 下的 symbolic link 在開機時自動執行。

拔掉的方法是 updated-rc.d ondemand disable (而非直接砍掉 /etc/rc*.d/ 裡面的檔案),想要透過 SaltStack 提供的 file.exists 或 file.missing 都發現不可行。

最後是 cmd.run + onlyif + test 搞定:

ondemand-disable:
  cmd.run:
    - name: update-rc.d ondemand disable
    - onlyif: test -e /etc/rc2.d/S99ondemand

SaltStack 對於 dependency 的設計看起來問題重重,如果想要用 SaltStack 的人可以好好考慮一下。

現在的作法是直接 trial and error 跟他拼,PuppetChefSaltStack 都直接用時間跟他換。原因是這東西實在太底層了,架構不好就是上面的管理員與 DevOps 一直 workaround。

現在有種互相在比爛的感覺...