FreeBSD 6 手動編譯 MySQL5 (最佳化)

顯示結果從第 1 筆 到 8 筆,共計 8 筆
  1. #1
    校長兼撞鐘 阿 土 的大頭照
    註冊日期
    2000-10-09
    所在地區
    SEEDNET 8M
    討論區文章
    11,817

    FreeBSD 6 手動編譯 MySQL5 (最佳化)

    今天看到的文章 , 改天打算再來 Compile 一次

    原文來自:
    http://www.hshh.org/index.php?id=26

    ------------------------------------------------------------------

    根據 FreeBSD maillist、google 獲知 libthr 這樣1:1 的線程庫比較適合 MySQL 運行。

    編譯參數:
    預設啟用archive類型儲存格式,啟用支持大表,啟用OpenSSL支持,預設使用thr線程庫

    ./configure --prefix=/usr/local/mysql --without-debug --without-bench --enable-thread-safe-client --enable-assembler --with-extra-charsets=complex --with-named-thread-libs='-lthr' --with-archive-storage-engine --with-big-tables --with-openssl
    # gmake all install-strip

    性能調整:

    configure 時增加以下env可以為P4系列cpu優化:
    CFLAGS='-O2 -pipe -mtune=pentium4 -mmmx -msse -msse2 -mfpmath=sse' CXXFLAGS='-O2 -pipe -mtune=pentium4 -mmmx -msse -msse2 -mfpmath=sse'
    P3系列CFLAGS='-O2 -pipe -mtune=pentium3 -mmmx -msse -mfpmath=sse' CXXFLAGS='-O2 -pipe -mtune=pentium4 -mmmx -msse -mfpmath=sse'
    CC,C++的優化指令會減慢編譯速度20%左右,性能提高約4%左右

    PS:當編譯OpenSSL支持的時候,MySQL不能編譯為靜態鏈接程序。
    如果不用OpenSSL,可以在configure添加
    --with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static
    編譯為靜態鏈接將提高約2%左右的性能



  2. #2
    校長兼撞鐘 阿 土 的大頭照
    註冊日期
    2000-10-09
    所在地區
    SEEDNET 8M
    討論區文章
    11,817

    回覆: FreeBSD 6 手動編譯 MySQL5 (最佳化)

    目前 PCZONE 用的系統是 FreeBSD 6 + MySQL 5
    MySQL 是我自己手動 compile 的
    之前找了不少資料 , 網路上高手測試文章顯示 libthr 效能比較好 , 故捨棄 linuxthreads 而改採 libthr

    要採用 libthr 可在編譯完 mysql 後 , 編輯 /etc/libmap.conf , 並加入下列資料

    [mysqld]
    libpthread.so.2 libthr.so.2
    libpthread.so libthr.so
    重新開機後 , 執行指令:ldd /usr/local/libexec/mysqld
    可看到下列資訊

    /usr/local/libexec/mysqld:
    libz.so.3 => /lib/libz.so.3 (0x65fac000)
    libwrap.so.4 => /usr/lib/libwrap.so.4 (0x65fbc000)
    libcrypt.so.3 => /lib/libcrypt.so.3 (0x65fc3000)
    libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x65fdc000)
    libm.so.4 => /lib/libm.so.4 (0x660aa000)
    libpthread.so.2 => /usr/lib/libthr.so.2 (0x660c0000)
    libc.so.6 => /lib/libc.so.6 (0x660d3000)
    出現 libpthread.so.2 => /usr/lib/libthr.so.2 代表 MySQL 已採 libthr 運作

  3. #3
    校長兼撞鐘 阿 土 的大頭照
    註冊日期
    2000-10-09
    所在地區
    SEEDNET 8M
    討論區文章
    11,817

    回覆: FreeBSD 6 手動編譯 MySQL5 (最佳化)

    3/8 上午抓 MySQL 5.0.18 Source Code 回來手動編譯
    我的 CPU 是 XEON , 我設定成 mtune=prescott
    若你的 CPU 是 P4 , 則設定為 mtune=pentium4

    ./configure --prefix=/usr/local/mysql --without-debug --without-bench --enable-thread-safe-client --enable-assembler --with-charset=utf8 --with-xcharset=all --with-collation=utf8_general_ci --with-extra-charsets=all --with-named-thread-libs='-lthr' --with-archive-storage-engine --with-big-tables --with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static CFLAGS='-O3 -pipe -mtune=prescott -mmmx -msse -msse2 -mfpmath=sse -fno-omit-frame-pointer -D_THREAD_SAFE -fno-gcse' CXXFLAGS='-O3 -pipe -mtune=prescott -mmmx -msse -msse2 -mfpmath=sse -fno-omit-frame-pointer -felide-constructors -fno-rtti -fno-exceptions -D_THREAD_SAFE -fno-gcse'
    然後執行 gmake all install-strip 安裝 MySQL

    把 mysqld_sqfe 加入到 /etc/rc.local , 讓 mysql 開機時自動啟動
    echo "/usr/local/mysql/bin/mysqld_safe --user=mysql &" >> /etc/rc.local

    測試個一兩天大概就知道 MySQL 效能有無再提升些
    此文章於 2006-03-08 09:49 AM 被 阿 土 編輯。

  4. #4
    會員
    註冊日期
    2003-12-25
    所在地區
    ADSL 8M/640K
    討論區文章
    122

    回覆: FreeBSD 6 手動編譯 MySQL5 (最佳化)

    喔...土大沒用PostgreSQL嗎?

  5. #5
    會員
    註冊日期
    2000-12-14
    討論區文章
    38

    回覆: FreeBSD 6 手動編譯 MySQL5 (最佳化)

    freebsd 3,4,5,6 再怎麼手動編譯 mysql 都不會有非常明顯的效果,無論如何都與 linux 上的 mysql 還是有 30%~50% 的速度差距,有興趣跑跑 sql-bench 就知道了



  6. #6
    校長兼撞鐘 阿 土 的大頭照
    註冊日期
    2000-10-09
    所在地區
    SEEDNET 8M
    討論區文章
    11,817

    回覆: FreeBSD 6 手動編譯 MySQL5 (最佳化)

    引用 作者:biggio
    freebsd 3,4,5,6 再怎麼手動編譯 mysql 都不會有非常明顯的效果,無論如何都與 linux 上的 mysql 還是有 30%~50% 的速度差距,有興趣跑跑 sql-bench 就知道了
    之前用 FreeBSD 4 跑 MySQL 是使用 Linuxthreads 去跑
    搭配 LinuxThreads 去跑 MySQL , 一次會開 10 個左右的 MySQL 服務
    多 CPU 搭配 LinuxThreads 跑起來的確比只開一個 MySQL Server 跑得快

    目前 MySQL 改成以 libthr 來跑 , 只會開單一 MySQL 服務
    效能比起以前一次開 10 個 MySQL 服務的 Linuxthreads 來說 , 效能的確好多了
    另外 FreeBSD 6 有一個新的功能 ULE , 據說效能會更好
    不過這些新技術都是跟舊版 FreeBSD 相比而非跟 Linux 相比

    之前的確聽說 MySQL 效能在 Linux 下會比 FreeBSD 好 , 我想相關測試數據是以前的版本
    目前 FreeBSD 6 還是 BETA2 , 等 Release 之後 , 國外應會有些測試報告出現
    我想應不至於會差到 30%~50% 那麼多

  7. #7
    會員
    註冊日期
    2000-12-14
    討論區文章
    38

    回覆: FreeBSD 6 手動編譯 MySQL5 (最佳化)

    提供個連結供參考
    http://people.fsn.hu/~bra/freebsd/my...Mysqlbench.pdf

    文中用 Freebsd 4,6, 及 Linux 來作交叉測試,得出以下的結果:

    Mysql 4 比 Mysql 5 快
    Linux 跑 Mysql 比 FreeBSD 快
    在 FreeBSD 上,libthr 的確比 linuxthreads 快

    至於,linux 是否有比 freebsd 快 30%~50% 的程度,
    隨著測試壓力的增加,我想 MySQL 在 Linux 上優勢表現的非常明顯

  8. #8
    會員
    註冊日期
    2001-06-28
    討論區文章
    64

    回覆: FreeBSD 6 手動編譯 MySQL5 (最佳化)

    引用 作者:biggio
    提供個連結供參考
    http://people.fsn.hu/~bra/freebsd/my...Mysqlbench.pdf

    文中用 Freebsd 4,6, 及 Linux 來作交叉測試,得出以下的結果:

    Mysql 4 比 Mysql 5 快
    Linux 跑 Mysql 比 FreeBSD 快
    在 FreeBSD 上,libthr 的確比 linuxthreads 快

    至於,linux 是否有比 freebsd 快 30%~50% 的程度,
    隨著測試壓力的增加,我想 MySQL 在 Linux 上優勢表現的非常明顯
    Agree ... 因為 Linux FS 快多了
    但是 System Heavy Loading Bench 就只好讓給 BSD 囉 ...

類似的主題

  1. 【問題】FREEBSD的最佳化調整
    作者:逍遙悠 所在討論版:☉ -- 架 站 DIY 討 論 版
    回覆: 3
    最後發表: 2004-11-04, 02:40 AM
  2. 【教學】xp最佳化
    作者:weedmol 所在討論版:-- Windows 討 論 版
    回覆: 7
    最後發表: 2004-06-26, 12:36 PM
  3. Win2000pro最佳化?【問題】
    作者:Qboy 所在討論版:-- Windows 討 論 版
    回覆: 2
    最後發表: 2002-05-29, 06:43 PM
  4. 讓你的 Win9x,Me 最佳化!
    作者:snic 所在討論版:-- Windows 討 論 版
    回覆: 10
    最後發表: 2001-09-15, 09:30 AM
  5. 最佳化磐英8KTA3
    作者:ccx 所在討論版:-- 電 腦 硬 體 討 論 版
    回覆: 7
    最後發表: 2001-05-25, 06:56 PM

 

此網頁沒有從搜尋引擎而來的訪客

發表文章規則

  • 不可以發表新主題
  • 不可以回覆文章
  • 不可以上傳附加檔案
  • 不可以編輯自己的文章
  •