先前提到在 Linux 跑 MySQL 的問題,在 Update on the linux scaling situation. 提到了兩個 link:
在第一個 link 裡,在一台 4 CPU 的 PPC 64 有發現類似的現象:
中間 debug 的過程就不講了,最後發現是 glibc 裡 malloc()
的問題,用 LD_PRELOAD 把 Google 提供的 tcmalloc 替換掉後就恢復了:
那個法鵝大站的站長,如果你覺得 MySQL 太慢的話掛個 LD_PRELOAD 的 patch 上去... :p
感謝 DK 大:p
這東西不錯用, 跑起來也較快
只有一個問題, tcmalloc() 要來的記憶體位置是固定的
malloc() 要來的並非如此(Linux Kernel 2.6 + vdso random)
會有安全性的疑慮 :P