- ベストアンサー
GMO VPSで大きなファイルの作成が遅い
- GMO VPSを利用していると、大きなファイルの作成が非常に遅い問題が発生しています。VPSのディスク領域は200GB割り当てられていますが、ファイル作成の都度、領域の拡張が行われており、時間がかかります。また、ファイルを削除すると領域が縮小されるため、再度ファイルを作成する際も時間がかかります。
- アクセスには問題がないようですが、1回の作成に時間がかかるため、大きなファイルの作成が追いつかない状況です。そこで、大きなファイルを作成し、仮想的なドライブとして使用する方法を考えることを検討しています。これにより、VPSの容量は増減しないため、問題が解決すると考えています。
- ただし、プログラムの設計変更が必要となる場合もありますが、現在の環境は実験用サーバーであるため、本番環境ではこの問題は発生しないと思われます。したがって、プログラムを変更したくない場合には、他の解決策が求められます。どなたか、この問題に対して効果的な方法をご存知ないでしょうか。ご意見をお待ちしています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> で、その速度なのですが、 > dd if=/dev/zero of=temp.tmp bs=1M count=50 oflag=direct > で、結果が > 50+0 records in > 50+0 records out > 52428800 bytes (52 MB) copied, 103.715 s, 506 kB/s うーん確かに遅いですね。 現在の環境は「GMOのVPS」という事ですが、GMOクラウドVPSとお名前.com VPS(KVM)のどちらでしょうか。 今まで色々なとこのVPSを借りてきましたが、お名前.com VPS(KVM)は(ライバルであろうさくらのVPSと比べても)ディスクIOが弱いという感想ではあります。 個人的な感想でありベンチマークをとったわけではないのですが。 GMOクラウドVPSの方は特にそう感じた事はないのですが、同じインフラを使っているとしたら似たような結果になるかも知れませんね。 ddをしている最中に別のコンソールでpsコマンドを実行し、ddのプロセスステータスがR+やS+ではなくD+になっていたらディスクIO待ちという事になります。例えば1秒ごとにpsコマンドの結果を確認して頻繁にD+になっているようならもう諦めた方がいいかも。 # watch --interval 1 "ps ax | grep dd" ちなみに今個人的に借りているお名前.com VPS(KVM)の1Gプランで # dd if=/dev/zero of=temp.tmp bs=1M count=50 oflag=direct をやってみたところ平均で300MB毎秒(最遅99MB毎秒~最速500MB毎秒)が出ました。
その他の回答 (1)
- anmochi
- ベストアンサー率65% (1332/2045)
Linuxにはループバックデバイスという仕組みがあります。これを用いて大きなファイルの中に小さなファイルを埋め込むというのはどうでしょう。 # dd if=/dev/zero of=/tmp/bigfile bs=1G count=50 # mkfs.ext4 /tmp/bigfile (ブロックデバイスじゃないよ。いいかい?) y # mkdir /mnt/bigfile # mount -t ext4 -o loop /tmp/bigfile /mnt/bigfile 以上の操作で50GBのファイルの中でファイルを読み書きするという事が可能となります。 ただ、これで今回の狙いである100MB前後のファイル作成でパフォーマンス上のメリットを得られるかどうかは試してみないと分からないですね。 ディスク領域が1GB程度でも良いのであればtmpfsを使うという手もあります。 CentOS6や7であれば最初から/dev/shmという場所がtmpfsでマウントされているかと思います。ここに置いたファイルはメモリ上に保存され、OSをシャットダウンしない限り失われる事はありません。 HDDが200GBという事は恐らくメモリは2GBのプランだと思いますので、/dev/shmが1GB弱のRAMディスクになっている事でしょう。
お礼
回答ありがとうございます。 早速試してみましたが、特に効果はないようでした。 どうも根本的に書き込み速度が遅いようです。 書き込み速度に問題がないように見えたのはキャッシュに騙されていたようです。 で、その速度なのですが、 dd if=/dev/zero of=temp.tmp bs=1M count=50 oflag=direct で、結果が 50+0 records in 50+0 records out 52428800 bytes (52 MB) copied, 103.715 s, 506 kB/s いくらVPSといえどもひどすぎる値が出ています。 こんなことありえるのでしょうか? 1年ほど前まで借りていたときには、こんな問題はなかったのですが。 なにか確認すべき項目などありますでしょうか。 GMOのサポートには連絡してあります。 よろしくお願いします。
お礼
ありがとうございます。 試してみましたが、見事にD+のままでした・・・・。 いくらなんでも100倍から1000倍遅いというのはなにかおかしいと思いますので、サポートからの返事を待ちたいと思います。 契約しているのはGMOクラウドVPSの4Gです。 tmpfsもありますが、やはり容量が足りません。 デフォルトでは1.9Gで、3Gくらいまでは増やせますが、とても足りません。 あまり増やして、スワップに影響がでると、多分スワップも遅いと思うので、難しいところです。