contents
- サーバハングアップ!?viコマンドの罠 ⇦今ここ
- viコマンド実行時のメモリ使用量の検証
久しぶりの投稿になってしまいました。
みなさんはviでファイルを開く時に注意していることは何ですか?
1年に1度、毎度お馴染みのように起きてしまうviコマンドの罠について書きます。
サーバ上のファイルの書き換えには欠かせないコマンドの一つなので、viコマンドを使ったことないという人はあまりいないでしょう。
だからこそ、viコマンドの恐ろしい罠について知っておいて欲しいです。
ちなみにviewコマンドについても同じことが言えますので、viewをよく使うという人も注意が必要です。
結論から言いますと、大きなファイルをviで開くとサーバがハングアップします。
ハングアップとは、OSが外部からのアクセスを一切受け付けなくなることを言います。
その時サーバでは何が起こっていたのか?
ハングアップした時によく聞くのは、viコマンドを実行しただけなのに何故なんだ?という声をよく聞きます。
これは、viコマンドとサーバリソースの関係を知っておくと簡単に解決します。
viコマンドを実行すると指定したファイルを一度サーバのメモリに乗せます。
つまり、viコマンドを実行するとファイルサイズ分だけメモリを消費することになります。
この時に割り当てるメモリが足らないと、サーバのメモリが食いつぶされて、サーバへアクセスしようとしても、アクセス時に割り当てるメモリがないため、アクセスすらも受け付けられなくなってしまう。
こうして簡単にハングアップが起きてしまいます。
ま、サーバ内ではviコマンドに割り当てるメモリを確保しようと頑張ってるんですがね。
サーバをハングアップから救え!
ハングアップから救え!と大胆に書いてみたものの、ハングアップ後にサーバを復活させる方法はOSの再起動くらいしか方法がありません。
しかも、shutdownなどのコマンドからの再起動ではなく、強制終了・・・
よくローカルPCの電源長押しとかして強制停止させる、あれです。
動いていた正常なプロセスもろとも強制終了してしまうので、どのくらい恐ろしいことになるか想像がつきますよね。
ちょっと脅し文句的な感じに書いてしまいましたが、要するにviコマンドを使用する時はファイルサイズを意識して使いましょうということが言いたかったです。
次回は実際にviを使用した時のメモリの消費量についてリアルタイムに見ていきます。
新着情報
ブログランキングに参加しています。クリックして応援していただけると嬉しいです。
人気ブログランキング
にほんブログ村