iT邦幫忙

0

請問如何讓mysql 支援多核心呢??

我的環境是
OS:win2k3 r2
db:mysql 5.1
Xeon E5410 8核心 8GRAM
因為程式需要不斷的查table(多個)並且作insert, 資料量接近千萬筆
當程式執行時cpu使用率只有13~15%左右
想說是不是有方法提高cpu的使用率, 讓query跟insert的動作更快完成
不曉得各位先進有什麼作法呢?

看更多先前的討論...收起先前的討論...
bizpro iT邦大師 1 級 ‧ 2009-11-12 09:51:50 檢舉
MySQL 5.1本來就支援多核心.
賽門 iT邦超人 1 級 ‧ 2009-11-12 10:46:48 檢舉
對...本來就是支援多核心...
pibarry iT邦新手 3 級 ‧ 2009-11-12 20:07:46 檢舉
對阿...我也是這樣覺得
只是覺得程式跑下去似乎沒有很快
所以想說是不是哪邊還需要作什麼樣的調整, 可以讓db query跟insert更快
當然該建索引的我已經建了
James iT邦大師 7 級 ‧ 2009-11-13 08:49:50 檢舉
除非系統真的回應很慢,不要隨便調整資料庫設定,因為每一種提升效能的設定都有優點也有缺點,某些情況會提昇效能但是某些情況反而會減低效能或增加不穩定性,原廠預設的設定就是針對一般情況的最佳化,如果某種設定對每種情況都能提昇效能而且不會增加資料遺失的風險,那原廠早就把這個設定設為預設值了。
plex iT邦新手 4 級 ‧ 2014-02-08 10:10:08 檢舉
Mysql 本來就有多種設定檔支援各種不同硬體模式下的應用,你的記憶體有8GB,可以可慮更改 My.cnf 檔案,在 Mysql文件中可以找到下列的預設範例
my-huge.cnf
my-innodb-heavy-4G.cnf
my-large.cnf
my-medium.cnf
my-small.cnf
你可以試用 my-innodb-heavy-4G.cnf 或是 my-huge.cnf
將 該檔案取代原來的 my.cnf,然後重啟mysql即可
marsyang1 iT邦新手 4 級 ‧ 2015-06-30 10:52:02 檢舉
22
賽門
iT邦超人 1 級 ‧ 2009-11-12 09:09:27
最佳解答

其實, 樓上的Bruck大真的是一語中的....
CPU都只佔用13~15%, 代表...真的...MySQL處理的資料流量只用到CPU的一點點...代表MySQL是很精簡的資料庫系統...
是否可以用增加CPU效能來提升資料存取的速度...這是不可能的..除非整個IO的速度-包括網路及硬碟等等的IO速度都要提升...
現在的問題應該是..由於IO太"慢", 以致於資料流量塞IO, 導致CPU沒有必要全力以赴, 不知道版大的Server除了MySQL外有沒有做為其他用途, 或許你可以試著調整Cache或Buffer的大小, 將資料流量加大...因為CPU只用到一點點, 所以系統瓶頸不在CPU..在IO...版大也可以用Performance Monitor去看看網路、硬碟、記憶體IO方面的情形, 應該可以瞭解問題所在...
要調整Cache、Buffer大小, 可以用MySQL Administrator的"Server Variables"頁面來調整....

pibarry iT邦新手 3 級 ‧ 2009-11-12 10:47:04 檢舉

該server沒有做其他的用途
不曉得Simon提到的cache, buffer和Performance Monitor是什麼??可以再明確一點嗎
另外我的table預設都是InnoDB
我這邊的設定如下:
General Parameters==>
Key buffer: 1024M
Sort buffer size: 256K
InnoDB Parameters==>
Buffer Pool Size: 512M
Add. mem Pool Size: 100M
謝謝

fillano iT邦超人 1 級 ‧ 2009-11-13 03:34:51 檢舉
18
James
iT邦大師 7 級 ‧ 2009-11-12 08:23:26

資料庫的瓶頸大部份在硬碟

pibarry iT邦新手 3 級 ‧ 2009-11-12 09:37:16 檢舉

嗯...我認同
不過在相同的硬碟環境下
是不是有什麼辦法可以讓db發出最大效能呢??

18
鐵殼心
iT邦高手 1 級 ‧ 2009-11-12 14:24:48

相同的硬體環境下, 因為你有8GB的記憶體, 所以
把Windows Server的虛擬記憶體設成 0 MB看看
應該會有想像不到的效果.

soly iT邦新手 4 級 ‧ 2009-11-13 15:01:34 檢舉

聽起來既然開版大已經是在跑production server了,小弟認為把虛擬記憶體關掉有非常大的風險,對跑伺服器來說並不恰當。若是桌機或是還未上線的測試機要試試看倒是無所謂,不過就如同以上幾位大大的看法,可以從I/O方面著手看看,而且我想把虛擬記憶體關掉所換來實際效益是否能超過把虛擬記憶體關掉而帶來的穩定性風險,這就有待研究。

pibarry iT邦新手 3 級 ‧ 2009-11-13 15:23:03 檢舉

嗯..我有把虛擬記憶體關掉了...不過似乎看不出有比較好的效果

我要發表回答

立即登入回答