VPSを使用していると、何らかの原因で処理が重く感じることがあります。
CPUに高い負荷がかかっている場合や、メモリ不足に陥っている場合など、原因はさまざまです。
または、ホスティング業者が管理する部分でメンテナンスなど何らかの障害が発生しているかもしれません。
本記事では、Ubuntuが動作するVPSを例に、VPSで処理が重くなった場合の原因と対処方法について解説します。
Unix/LinuxをVPSで利用するなら
ミライサーバー
\2週間無料・全プランSSD搭載/
ミライサーバーを無料で試す
目次
前提条件
今回は、仮想マシン上に構築されたUbuntuを使用しています。
仮想マシンのスペックは以下のとおりです。
- CPU:2vCPU
- Memory:4GB
- Disk:50GB
- Ubuntuのバージョン:Ubuntu 22.04.2 LTS
VPSが重い場合の原因
VPSが重いと感じた場合、念のため、ホスティング業者が管理する部分で障害などが発生していないかを確かめましょう。
使用中のサービスのページで、「障害情報」「メンテナンス情報」等が掲載されていれば、そちらの内容を参照するようにしてください。
以降は、ホスティング事業者の管理する部分で障害などが発生していないにも関わらず、VPSが重い場合について、代表的な原因と、調査方法について紹介します。
CPUが高負荷
何らかの処理が実行され、CPUリソースを全て消費してしまうほどの高負荷がかかっていると、VPSの処理全体が重くなります。
これは、CPU使用率をみることで状況を確認できます。
CPU使用率を確認するコマンドの例として、topコマンドを紹介します。
$ top
topコマンドは、サーバー全体のCPU使用率と、プロセスごとのCPU使用率が1秒おきに表示されます。
そのため、現在のCPU使用率の状況をリアルタイムに把握したい場合に便利です。
全体のCPU使用率は、以下の項目の割合を示しています。
項目 | 詳細 |
---|---|
%us | ユーザプロセス |
%sy | システム(カーネル)プロセス |
%ni | nice(優先度をあげて実行した)プロセス |
%id | アイドル(待機)状態 |
%wa | I/O待ち |
%hi | ハードウェア割り込み要求 |
%si | ソフトウェア割り込み要求 |
%st | 仮想プロセス |
「CPUが高負荷」というのは、上記のうち「%wa」を除くいずれかの値が100%に近い値となっている場合です。
最もよくある事象は「%us」の値が100%になる場合です。
このときは、ユーザーが実行している何らかのプロセスがCPUリソースを多く使っている状況です。
プロセスについては、こちらの記事で詳しく解説しています。
2023.03.16
Linuxのプロセスとは。psコマンドやkillコマンドの使い方も解説
Linuxサーバーを管理するには、サーバー内で稼働しているプロセスの状況を把握し、必要に応じて強制終了するなどの対応が必要です。 ...
メモリ不足
プログラムを実行するとメモリを消費してプロセスが生成されます。
そのため、大量にプロセスが生成されると、メモリ不足に陥り、VPS全体が重くなる可能性があります。
VPS全体の処理が重くなったと感じたら、メモリ使用量を確認しましょう。
メモリ使用量を確認するコマンドの1つとして、「free」を紹介します。
$ free
表示されている数字の単位はKBで、この環境では4GBのメモリが利用できるのがわかります。
free列より、約127MBの空きがあることがわかります。
大量にプロセスが生成され、freeがゼロとなりメモリ不足に陥っても、VPSが停止することはありません。
しかし、メモリが不足すると、ディスク容量の一部でメモリと同じ役割をする「Swap」領域が使用されます。
メモリと比較してディスクは速度が非常に遅いので、Swap領域が使用されるとVPS全体の処理が重くなります。
他にも、CPU使用率の確認で使用した「top」コマンドでも、VPS全体やプロセスごとのメモリ使用量が確認できます。
こちらのコマンドもあわせて利用するとよいでしょう。
VPSの処理が重いときの対処法
CPUが高負荷
CPUが高負荷になっている原因は、複数の要因が考えられます。
- 処理が重いプログラムを複数実行している
- プログラムが無駄な処理を実行しており、必要以上にCPUリソースを消費している
- CPUの処理能力不足
処理が重いプログラムを実行している場合は、topコマンドでCPU使用率が高いプロセスを特定し、プロセスをkillすることで解消できます。
例えば、上記の場合プロセスID「1793」が最もCPU使用率の高いプロセスですので、このプロセスをkillしましょう。
killするには、killコマンドとともにプロセスIDを指定します。
$ kill 1793
なおVPS全体が重く、killコマンドすら実行できない場合は、VPSのOS再起動を行います。
CPUが高負荷になる原因として考えられるのが「プログラムが無駄な処理を実行しており、必要以上にCPUリソースを消費している」です。
これは、開発したばかりでテストが不十分なプログラムを実行した場合に発生する可能性があります。
この場合は、実行したプログラムのパフォーマンスチューニングや、設定ミスがないか確認しましょう。
最後に、CPUリソースが不足しているケースです。
例えば、今回使用している仮想環境のスペックが2vCPUですが、4vCPUや8vCPUといったリソースを必要とするプログラムを実行すると、CPUリソースが不足して処理が重くなります。
この場合は、CPUの増強、つまりCPUが多く利用できるプランに変更することを検討しましょう。
メモリ不足
メモリ不足になっている原因は、複数の要因が考えられます。
- 大量にメモリを消費するプログラムが実行されている
- プロセスが大量に生成されている
- メモリ容量不足
例えば、アプリケーションサーバーやデータベースなどのミドルウェアは、使用するメモリ容量を設定できます。
ここで誤って大量にメモリを消費する設定をしてしまうと、ミドルウェアを起動したとたんにVPSが重くなり、メモリ不足に陥ります。
このように、大量にメモリを消費するプログラムが実行されている場合は、設定を修正します。
また、プロセスが大量に生成されている場合は、不要なプロセスは終了することでメモリ消費を抑えられます。
それでもメモリ不足が解消できない場合は、より大容量のメモリが利用できるプランに変更しましょう。
その他の対処法
ユーザーが実行しているプログラムのほか、OS(カーネル)で実行されているプロセスでなんらかの問題が発生し、処理が重くなる場合があります。
この場合は、ログを確認しましょう。
OSのログを確認する場合は、/var/log/syslogファイルを確認します。
$ sudo tail /var/log/syslog
ログに大量にエラーが出力されている場合、それが原因で処理が重くなっている可能性があります。
例えば、プロセスが異常終了を繰り返しCoreファイルが大量に出力されている場合、syslogファイルにメッセージが出力されます。
この場合、そのプロセスの設定に問題がある可能性が考えられるため、設定ファイルを確認しましょう。
syslogについては、こちらの記事で詳しく解説しています。
2023.02.16
syslogとは。監視方法やsyslogサーバーの構築方法を解説
大量のサーバーやネットワーク機器などの稼働状況を把握するためには、syslogの利用が便利です。本記事では、syslogに焦点を当て...
まとめ
今回は、VPSが重くなる原因とその対処方法を紹介しました。
VPSが重くなる原因として主に考えられるのが「CPUが高負荷となっている」「メモリ不足に陥っている」です。
それぞれ、負荷の高いプロセスが実行されていたり、プロセスが大量に実行されていたりする場合が考えられ、それぞれのプロセスを停止することで事象は解消されます。
しかし、どれも必要なプロセスで停止することができないときは、CPUやメモリの増強を検討しましょう。
物理サーバーを利用している場合はCPUやメモリの増設や、サーバーの増強などを検討する必要がありますが、VPSではCPUやメモリを増強することが簡単にできます。
たとえば、ミライサーバーでは、次の2つの方法で、VPSを増強することができます。
- スケールアップ
メモリやCPUなど全体的なスペックを向上させたい場合、今使っているプランよりも上位のプランへ変更できます。 - オプション追加
「CPUだけ追加したい」など、限定的にスペックを向上させたい場合、必要なスペックのみをオプションにて追加することができます。
CPUやメモリなどのリソースの増強・縮小を柔軟に行いたい場合は、ミライサーバーの利用をご検討ください。
UnixやLinuxのVPSならミライサーバー
ミライサーバーは、アシストアップ株式会社が提供している、Unix系サーバーに特化したホスティングサービスです。
ミライサーバーのVPSでは、高速処理が可能なSSDを全プランに搭載しています。
OSは、UbuntuやDebian、AlmaLinuxなどの豊富なラインアップから選択することができます。
2週間無料トライアルを実施しておりますので、まずはお気軽にお試しください。