FreeBSD 6.0 MySQL Performance

I use databases/mysql50-{client,server} and use benchmarks/super-smack to test. There are 3*2*2*2 = 24 cases:

  • Compile options: none, WITH_PROC_SCOPE_PTH=yes, WITH_LINUXTHREADS=yes
  • /etc/libmap.conf: none (libpthread), libthr
  • kern.timecounter.choice: ACPI-fast, TSC
  • kernel: ULE+PREEMPTION, ULE

These benchmarking were tested on my laptop (IBM x31 2672-IQV, Pentium-M 1.5G with 512MB RAM), and powerd was disabled. Detail informations (dmesg, sysctl, and kernel config file) will post later.

The commands are:

for i in 1 2 3 4 5; do super-smack select-key.smack 10 1000 | grep select_index; done
for i in 1 2 3 4 5; do super-smack update-select.smack 10 1000 | grep select_index; done

mysql-linuxthreads-libpthread-acpifast-ule+pre.txt

select_index    20000   0       0       14097.47
select_index    20000   0       0       13741.43
select_index    20000   1       0       13704.01
select_index    20000   0       0       13626.05
select_index    20000   0       0       13769.32
select_index    10000   2       0       1891.63
select_index    10000   2       0       1758.65
select_index    10000   2       0       1836.00
select_index    10000   4       0       2058.71
select_index    10000   14      0       2050.05

Continue reading "FreeBSD 6.0 MySQL Performance"

FreeBSD 6.0 MySQL Performance Tuning

這是 目前的討論:new benchmarks. WAS: FreeBSD MySQL still WAY slower than Linux

測試的環境是在本機上跑,主要的測試對象是 Thread Library,包括了:

  • libpthread (Default)
  • libpthread + LIBPTHREAD_PROCESS_SCOPE=yes
  • libthr
  • linuxthreads
  • linuxthreads (query cache disable)
  • libthr (query cache disable)
  • libthr (TCP socket)
  • linuxthreads (TCP socket)

這幾個測試結果沒有什麼意外,速度最快的是 libthr (即 1:1 Threading)。

另外因為上面的測試環境是打開 HTT 的情況下測出來的,所以有人建議關掉 HTT,而作者也再跑了一次,發現除了 libthr 快了一點點 (大約 2%) 以外,其他的都沒差。

再來是有人提出 上的 gettimeofday() 非常花資源 (這點在 提供的 mysql ktrace log 裡面有說到),所以有人有建議修改 kern.timecounter.hardware (從 ACPI-fast 改成 TSC),不過作者好像還沒看到 :p

再來是 kernel config file 裡面好像沒有用 SCHED_ULE

這個討論串還在跑,所以還可以看一看長輩們到底有什麼花樣可以玩...

Update:開新的討論串在討論了:mysql benchmarks。另外 super-smack 這個程式是 Sasha Pachev 發展的,後來 接手 (),現在是 在維護 ()。

將 Laptop 換成 FreeBSD 6

這幾天把 Laptop (IBM X31 2672-IQV) 換成 6.0,一方面當然是為了 SA 作業的需要,另外一方面是想要知道在 X-Window 下中文的部份到底可以出現多少東西 :p

這幾天這樣玩下來發現很多東西結果比我料想中的好很多,在不太看 Document 的情況下 (這是壞習慣,請不要學了以後還一直跑到 386BSD 或是 #bsdchat 上面幹勦說某某東西不能用,結果只因為你沒看文件 XD) 到 /usr/ports/chinese/ 下猛裝 (尤其是字型,幾乎全裝上去了),然後把 locale 設定好,幾乎就都能用了 :p

與 xcin2.5 + rxvt-devel (我知道會有人推薦 gcin,不過我還沒測試過) 一開始有些問題,後來找了一下發現 早就寫過了:xcin root mode with icewm,照著兔子講的設定方式設定後幾乎沒什麼問題 (其實好幾年前就蠻穩定的了),用 kc15f 與 kc8x15 也沒有像以前會有殘影 (15 != 16 的關係),所以也不太需要 gugod-clean 了 :p

再來是前幾天剛出的 1.5,在 locale 正確的情況下裝起來就可以看中文、打中文 (輸入法的部份使用標準的 XIM),比起很久以前的 Mozilla Suite,呃... 我記得當初好多 hack 在跑 :p 另外預設的字型很棒,直接吃 Firefly 版文鼎字。

其他的東西,大致上都是在系計中討論解決 (感謝),或是在我的 BBS 看板上問,都會有長輩 () 伸出援手,所以一切順暢無比 :p

LinkSys 將繼續提供 WRT54G (4.0)

看到的消息:LinkSys courts Linux hackers with WRT54G"L"

( 對 WRT54G 的介紹) 因為以 USD$60 提供了 4MB RAM + 16MB Flash,而常常被一些 玩家買回去重新塞自己做的 Flash :p

在最新版的 WRT54G (5.0) 因為改進到只需要 2MB + 8MB Flash,於是市場上就開始有收購的熱潮 :p 結果 跳出來說 還是會繼續提供 WRT54G (4.0) 給 玩家惡搞 :p

FreeBSD 6.0

FreeBSD 6.0 一延再延,除了一開始 BETA 的時候不斷修正外,RC1 推出後大家等 RC2,拖了老半天,最後決定跳過 RC2,直接 release。但最後也是拖了好幾天才正式公告出來 (也就是 FreeBSD 6.0 這篇,cvs tag 打下去好幾天卻沒有動靜)。

正式的公告在 FreeBSD 6.0-RELEASE Announcement,除了 ftp 下載外,還可以透過 下載。這也是第一個官方正式提供 下載的版本:Index of ftp://ftp.freebsd.org/pub/FreeBSD/torrents/

(之前的版本屬於實驗性質:5.4 在 Index of /~kensmith/5.4-torrent、5.3 在 Index of /~scottl/5.3-torrent、4.11 在 Index of /~kensmith/4.11-torrent)

除了 /etc/rc.d/ 的大幅改變外,kernel 的幾項改變也很重要,像是 options SCHED_ULE 終於可以用了 (5.4 的 SCHED_ULE 還是不穩定),而 options PREEMPTION (for kernel threading) 也在 GENERIC 出現了。另外 options CPU_ENABLE_SSE 也拔掉了,改由系統判斷是否可以使用 (如果真的不想使用 SSE,可以用 options CPU_DISABLE_SSE 強制關閉)。

6.0 另外一個優點是穩定性變好了。之前 netnews 跑 5.4 遇到 UFS1 有問題必當,所以每次 panic 後一定要 fsck -y 從頭到尾掃過一次後才能開起來,或者 downgrade 到 5.3,但 5.3 fxp 的 link0 (download the microcode to the chip,man 4 fxp) 又不太穩定,偶而會當掉...

在 Library 的部分,常用到的 gethostby*、getnet*、getproto*、getserv* 都 thread-safe 了。

在 Application 的部分,portsnap 在系統內就有,不需要額外裝。pgrep 與 pkill 也內建進系統,可以用 pkill -U nobody 送 signal 15 給所有 nobody 的 process (以前是裝 來用)。最後一個,觀察很久的 WPA Supplicant 也進來了,所以...

PS:雖然官方宣稱 5.3 可以升級到 6.0,不過實際上在升級時會遇到 include 的問題,我是從 5.3 升到 5.4 再跳到 6.0 的。

FreeBSD 6.0 裡 mpt0 (SCSI card on vmware) 的地雷

的 SCSI device 是模擬成 LSILogic 1030 Ultra4 Adapter (在 上是 mpt0),不過在 6.0 下我發現抓的到 mpt0 但抓不到 da0,於是去找了一下 mailing list,看看有沒有人有類似的情況...

早在七月就有人 report 過了,只是一直沒有人去修,看起來不是很多人用 vmware 的 SCSI interface:[mpt] 6.0-BETA1 mpt driver not working under VMware ESX 2.5.1

不知道有沒有機會修好咧...