swap file と swap partition のパフォーマンス比較
サーバ屋の友人から、「客に突然swap増やしてと言われて困ってるんだけど、swap file でいいと思う?」と聞かれたのでgoogle様でプチ調査。とりあえず、次の2サイト:
- Performance issues with swap file vs. swap partition
- LinuxQuestions.org - do you really need a SWAP partition?
が参考になりそうなので、読んでみた。
Linux (kernel 2.4) の場合、基本的には、swap file より swap partition のほうがパフォーマンスが良いという意見が多い。
> No need to waste a partition for swap space. Just make a swap file.
A swap file is good to use in a pinch; however, if the system swaps on a frequently, it's best to use a partition. A swap file has the added overhead of the filesystem writes that a swap partition does not.
しかし、差は体感できるほどとは思えないという意見や、fileかpartitionかよりも、swapがディスク上のどこ(物理的位置)に配置されているかのほうが効いてくるという意見もあった。
kernel 2.6 系の場合は、VMの改良によりどちらでも差がないと言っている人がいる。正式なカーネルドキュメントにそう書いてあるわけではないのですが、まぁ信用できるかなと。
Actually I seem to remember reading an article by Linus which stated that a swap file in a 2.6 kernel would not have any noticeable performance hit vs a swap partition.
(http://www.codemonkey.org.uk/post-halloween-2.5.txt より)
VM Changes:
- Due to various changes, swap files should be just as fast as swap partitions.
個人的には、「swapのパフォーマンスが重要なサーバなんて作るのやめましょう」「メモリ買って来ましょう」という方向に思考が行ってしまうので、どっちでもいいかな。どうしてもどちらかを選べと言われたら、swap file のpenaltyをほぼ零にした(はずの)カーネルハカーの努力に敬意を表して file をチョイスいたします :-)