1. 程式人生 > >MySQL利用多核處理器 innodb_read_io_threads

MySQL利用多核處理器 innodb_read_io_threads

在工作中可能遇到這樣的情況,隨著業務的增長,使用者量也在逐漸增長,終究有一天,一到高峰期,資料庫伺服器CPU利用率直飈100%。

最簡單的做法就是直接提升硬體效能,簡單粗暴,直接有效。

假如我們最開始的伺服器CPU核數是4,然後我們覺得4個有點扛不住,那就直接給他搞16個核。這下應該沒啥問題了吧,使用者訪問站點貌似也比以前快了。但是不要高興太早,當你開啟工作管理員,你會發現利用率高的還是以前那幾個核,或者說只有4個用的比較多,其它12位大爺感覺不接茬。

如果你去查一下innodb_read_io_threads和innodb_write_io_threads這兩個變數的時候,你就回發現,它們的預設值是4。可以用以下語句檢視這兩個變數的值:

show variables like '%_io_threads'
  • 1

那就往大放唄。如果你直接用set命令去修改,你就回發現,人家會告你這倆命令是隻讀變數。那好吧,只能在初始化檔案中新增這兩個變量了。找到mysql的安裝目錄,用管理員身份開啟mysql.ini檔案,在最後新增這麼兩句:

innodb_read_io_threads=16
innodb_read_write_threads=16
  • 1
  • 2

重啟MySQL服務,再去觀察一下工作管理員,你就會發現,這次任務分配到每個處理器的任務量就均勻了些。