SMPng による劇的な性能の改善2007年02月25日 12時54分49秒

SMPng についての投稿がされた。Progress on scaling of FreeBSD on 8 CPU systems. SMPng が遂に終了したらしい。大まかに訳してみた。

Now that the goals of the SMPng project are complete, for the past year or more several of us have been working hard on profiling FreeBSD in various multiprocessor workloads, and looking for performance bottlenecks to be optimized.

We have recently made significant progress on optimizing for MySQL running on an 8-core amd64 system. The graph of results may be found here:

http://www.freebsd.org/~kris/scaling/scaling.png

8 コアの amd64 を使った実験では大きな性能の改善が得られたそうだ。

The test was run on FreeBSD 7.0, with the latest version of the ULE 2.0 scheduler, the libthr threading library, and an uncommitted patch from Jeff Roberson [1] that addresses poor scalability of file descriptor locking (using a new sleepable mutex primitive); this patch is responsible for almost all of the performance and scaling improvements measured. It also includes some other patches (collected in my kris-contention p4 branch) that have been shown to help contention in MySQL workloads in the past (including a UNIX domain socket locking pushdown patch from Robert Watson), but these were shown to only give small individual contributions, with a cumulative effect on the order of 5-10%.
ULE スケジューラを使い更にパッチを当てた 7.0-CURRENT を使用してでの実験らしい。

Specifically, beyond 8 client threads FreeBSD has only minor performance degradation (an 8% drop from peak throughput at 8 clients to 20 clients), but Linux collapses immediately above 8 threads, and above 14 threads asymptotes to essentially single-threaded levels. At 20 clients FreeBSD outperforms Linux by a factor of 4.
クライアント数が 8 までならば Linux の方が僅かに上回る。しかし、それ以上になると Liunx は無惨な結果になり、14 クライアントを越えた後は一スレッド並まで、性能が劣化したらしい。FreeBSD はそれ以降も安定した性能を発揮した。

We see this result as part of the payoff we are seeing from the hard work of many developers over the past 7 years. In particular it is a significant validation of the SMP and locking strategies chosen for the FreeBSD kernel in the post-FreeBSD 4.x world.
七年の月日が掛かったが、4 系列からの大幅な変更は大成功を納めた。

設定の詳細は以下で入手出来るそうだ。

More configuration details and discussion about the benchmark may be found here:

http://people.freebsd.org/~kris/scaling/mysql.html