用 sysbench 測試 MySQL 效能

很久前是用 tpcc-mysql 測試 MySQL 效能:「用 tpcc-mysql 測試 LSI 的 Nytro MegaRAID NMR 8100-4i」,最近剛好又有測試需求,想說拿來學個新玩具測試,就想到 sysbench 的 oltp 測試。

先用 Google 找了找測試的方式,appleboy 之前寫的「Sysbench 測試 Percona XtraDB Server 效能」算是還不錯的文件,就拿來當起點了。

我是拿 AWS 測試,主要是因為幾乎所有的效能都是固定的,這樣測出來才有意義。

Amazon EC2 用 c4.8xlarge,用 10Gbps 網路測試會比較準確一點。硬碟的部份是掛上 100GB 的 SSD 硬碟,如果是測 I/O bound 的人就選擇有固定 IOPS 的 Provisioned 版本,但我這次測的都是 CPU bound,就只選用 General 版本了。

跑起 Ubuntu 14.04 後直接用 apt-get install sysbench 就可以裝起來了。

Percona 的 apt repository 設定可以參考官方的「Installing Percona Server on Debian and Ubuntu」這篇文章。設好後要裝什麼版本測試就是自己的選擇了。

都裝好後,測試的方式是先用 prepare 塞資料,再用 run 測試。

這是 prepare 部份的指令:(粗體字的 x 需要帶入自己對應的參數)

sysbench --test=oltp --db-driver=mysql --mysql-engine-trx=yes --mysql-table-engine=innodb --mysql-host=x --mysql-user=x --mysql-password=x --oltp-auto-inc=off --test=/usr/share/doc/sysbench/tests/db/oltp.lua --oltp-table-size=10000000 prepare

這是 run 部份的指令,我這邊用了 --oltp-read-only=on 只測 read transaction 的速度:

sysbench --test=oltp --db-driver=mysql --mysql-engine-trx=yes --mysql-table-engine=innodb --mysql-host=x --mysql-user=x --mysql-password=x --oltp-auto-inc=off --test=/usr/share/doc/sysbench/tests/db/oltp.lua --oltp-table-size=10000000 --oltp-read-only=on --num-threads=256 --report-interval=5 --max-time=60 --max-requests=0 run

大致上就是這樣測,然後用 gnuplot 畫圖。

Ubuntu 內建的 Noto Sans CJK...

今天在 Facebook 上才看到 chihchun 貼的資料,在 Ubuntu 14.04 之後都有 Noto Sans CJK 可以用:

sudo apt-get install fonts-noto-cjk #

Posted by 蔡志展 on Sunday, July 26, 2015

這邊提到的是 fonts-noto-cjk,不過我實際測試發現裝 fonts-noto 會比較好:前者預設值很細 (Light),後者包括了各種粗細 (我自己是用 DemiLight)。

這樣又少了一個要自己管理的東西了...

《第四公民》(Citizenfour)

第四公民》(Citizenfour) 這部電影描述了 Edward Snowden 在 2013 年披露稜鏡計畫的過程以及後續的效應,雖然是紀錄片,但整件事情還在進行發展中。

以最佳紀錄片的身份橫掃 2014 與 2015 的獎項,包括了奧斯卡金像獎與英國電影學院獎:

去年在美國上映時就查過資料,但當時沒找到在台灣上映的計畫。

前幾天發現沒跟上四月 11 日的 2015 金馬奇幻影展 (應該是台灣區的首映),昨天就跑去華山看:「《第四公民》首週上映時刻表」。

紀錄片裡描述了雙方第一次會面的珍貴影像畫面,以及當時雙方溝通的細節。

整部片子裡穿插了 GnuPGTails 這些工具,用來保護通訊的隱私與安全。以及當你可能被 APT 時要保護自己的一些手段。

在這個行業的人都應該去看一看這個歷史事件的紀錄片。

APT (Advanced Persistent Threat)

維基百科對 APT (Advanced Persistent Threat) 的定義是:

Advanced Persistent Threat (APT) APT is a set of stealthy and continuous computer hacking processes, often orchestrated by human(s) targeting a specific entity.

針對特定個人或團體進行攻擊,這邊的 entity 通常是指有權限存取系統,或是手上握有機敏資料的人,這些人的帳號密碼,或是系統權限是有價值的。

這幾年因為行動裝置普及,再加上行動裝置上驗證起來會比較麻煩,成為 APT 攻擊的首選。

下面就原文照登:

Ubuntu 上找不到 apt-add-repository 的解法

剛剛在弄 Linode 上的 Ubuntu 時要裝 PPA,發現沒有 apt-add-repository 可以用,找了一下資料發現這不是系統一定會安裝的軟體,所以要自己手動安裝:

apt-get install python-software-properties

裝完後就可以繼續裝 PPA 了。

PostgreSQL 提供 apt 可以用了...

在「apt.postgresql.org」這篇文章裡看到 PostgreSQL 宣佈官方 apt repository 的正式公告:「PGDG apt repository for Debian/Ubuntu」。

目前支援的 OS 包括了:

  • Debian 6.0 (squeeze)、7.0 (wheezy) 與 unstable (sid)
  • Ubuntu 12.04 (precise)

其中 Ubuntu 10.04 (lucid) 還正在進行。而 PostgreSQL 的版本從 8.3 到 9.2 (包括了 8.{3,4} 以及 9.{0,1,2} 這五個版本) 都支援。

比較特別的是居然支援 unstable,大概是因為自己要用?

來測試看看好了...

結果回頭用 Google 提供的 Chrome 就好了...

因為目前 Ubuntu 12.04 的 chromium-browser 還是 18.0,所以在「Ubuntu 上的 Chromium Stable Channel 與 Dev Channel」這篇試著裝新版的 chromium,結果發現問題不少...

stable 版本容易 core dump 掛掉,dev 版本感覺是 connection leak... 可用的 connection 變少後,網站速度卡在 parallel connection 不夠。

結果晚上被 gasolwu 說可以裝 Google 官方的版本,才發現從 Google 下載下來雖然是 deb,但安裝時會自動增加 apt key (好邪惡啊) 並且設定 apt 機制更新...

總算能用 21.0 了...

Ubuntu 上的 Chromium Stable Channel 與 Dev Channel

Ubuntu 12.04 上的 Chromium 一直都是 18.0 版,而 "Chromium Builds" team 也沒在更新了...

過一陣子想起來就會去找一下,結果剛剛發現有人在 Launchpad 上面丟出來了:「New Chromium Stable And Development PPAs For Ubuntu 12.04」,有兩個版本,一個是 stable (目前是 21.0),一個是 dev (目前是 23.0)。

而舊的 repository 可以用 apt-add-repository -r 移除,然後再跑 apt-get update 更新。