4 月 16 2010
[Benchmark] eAccelerator v.s. APC on PHP 5.3
FreeBSD ports tree 的 lang/php5 升級到 5.3.2, www/eaccelerator 也升級到 0.9.6。
但是… 目前,FreeBSD ports tree 的 www/pecl-APC 依然是 3.0.19,無法在 PHP 5.3 運作;為了讓它正常運作,jnlin 送過 PR(我沒有先查詢,也送了一個 )。
其實 eAccelerator 0.9.6 在 2010 年 2 月初就已經釋出了,可是,從 changelog 看來,很多不錯的功能被砍掉(反璞歸真?):
Changes in this version:
* Support for PHP 5.3.
* The encoder is removed
* The user cache functions are removed
* The session handler is removed
* The minimal PHP version supported is now 5.1
* Some internal refactoring to clean up the code
* Fixed some bugs (and probably added some)
這麼看來,2008 年的這篇文章的參考價值就低了些…
為了滿足我自己的好奇心,就把 APC 3.1.3p1 裝起來測試看看。
系統/硬體:
- CPU: Intel(R) Pentium(R) 4 CPU 3.00GHz
- Memory: 6G(DDR2 800 MHz, Dual-Channel)
- FreeBSD 8.0-RELEASE-p2 amd64
- Apache HTTPD 2.2.14
- PHP 5.3.2
設定:
- eAccelerator 0.9.6:
eaccelerator.shm_size="128" eaccelerator.cache_dir="/tmp/eaccelerator" eaccelerator.enable="1" eaccelerator.optimizer="1" eaccelerator.debug="0" eaccelerator.log_file="/var/log/eaccelerator.log" eaccelerator.name_space = "" eaccelerator.check_mtime="1" eaccelerator.filter="" eaccelerator.shm_max="0" eaccelerator.shm_ttl="0" eaccelerator.shm_prune_period="0" eaccelerator.shm_only="0" eaccelerator.compress="1" eaccelerator.compress_level="9" eaccelerator.keys="shm_and_disk"
- APC 3.1.3p1:
apc.enabled=1 apc.shm_segments=1 apc.shm_size=128 apc.ttl=7200 apc.user_ttl=7200 apc.num_files_hint=1024 apc.mmap_file_mask=/tmp/apc.cache apc.enable_cli=1
測試結果(ab -c5 -n500):
Pure PHP | eAccelerator | APC | |
WordPress 2.9.2 | 3.00 req./sec. 332.834 ms/req. | 7.61 req./sec. 131.487 ms/req. | 8.87 req./sec. 112.750 ms/req. |
MediaWiki 1.15.3 | 1.81 req./sec. 552.822 ms/req. | 2.75 req./sec. 363.124 ms/req. | 5.93 req./sec. 168.580 ms/req. |
Gallery 2.3.1 | 3.51 req./sec. 284.979 ms/req. | 7.91 req./sec. 126.421 ms/req. | 7.38 req./sec. 135.506 ms/req. |
依照結果看來,APC 3.1.3p1 的確略勝 eAccelerator 0.9.6。
可惜的是.. Xcache 目前的最新版本(1.3.0)沒辦法在 PHP 5.3 跑…
3 月 13 2012
在 FreeBSD 用 ports 安裝 MySQL 5.5
我在 FreeBSD 用 ports 安裝 databases/mysql41-server 、 databases/mysql50-server 時,會放這些 configuration parameters:
(databases/mysql51-server 會多放個 WITH_FAST_MUTEXES)
之前要安裝 databases/mysql55-server 時發現…
databases/mysql55-server 只剩下 WITHOUT_OPENSSL 與 WITH_FASTMTX 這兩個 configuration parameters 可以用,而預設的 WITH_EXTRA_CHARSETS(文章前頭提到的 WITH_XCHARSET)就是 all;以往使用的 WITH_CHARSET=big5 必須從 my.cnf 作設定(這也的確是比較好的作法);BUILD_OPTIMIZED 則是不需要了(也不支援?)。
另外,databases/mysql55-server 預設只有這些 storage engines:
ARCHIVE、BLACKHOLE、EXAMPLE 跟 FEDERATED 這四個 storage engines 可以透過 INSTALL PLUGIN 的方式進行安裝,例:
By Joe Horn • Database, FreeBSD 0 • Tags: FreeBSD, MySQL, ports