Linux
 Computer >> コンピューター >  >> システム >> Linux

Linuxの動作が遅い?原因を特定して解決する徹底ガイド

せっかくPCにLinuxをインストールしたのに、システム全体がもっさりしていてはストレスを感じてしまいますよね。マシンの構築や購入、アップグレードにお金をかけたなら、キビキビと動いてほしいものです。しかし現実にはそうならないことも多く、幸いLinuxでは原因を詳しく調査できます。この記事では、Linuxマシンが遅くなる原因を見つける方法をご紹介します。

Linuxパソコンが遅くなる主な原因

Linuxパソコンの動作が遅くなる原因としては、以下のようなものが考えられます。

  • systemd(または使用中のinitシステム)によって起動時に不要なサービスが立ち上がっている
  • 複数の重いアプリケーションを同時に開いていることでリソース消費が高くなっている
  • ハードウェアの不具合や設定ミス

Linuxパソコンを高速化する前に、まずは次の点を把握しておく必要があります。起動時に開始されるサービス、優先度の高い・低いプロセス、CPUの健康状態、RAMが必要以上のデータで埋まっていないか、そしてスワップ領域が一杯になっていないかどうか。最後に、ハードディスクが正常に動作しているかどうかも確認しましょう。

CPU情報を確認する

動作の遅いLinuxパソコンを高速化したい場合、最初のステップはCPU情報の確認です。FirefoxやLibreOfficeといったプログラムを開くのに時間がかかるなら、CPUの処理能力が重いアプリケーションに対して不足している可能性があります。

ターミナルを開いて、以下のコマンドのいずれかを実行してください。

cat /proc/cpuinfo
lscpu

これらのコマンドを実行すると、vendor_id、モデル名、CPU周波数(MHz)、キャッシュサイズ、マイクロコード、bogomipsなど、CPUに関する詳細情報が表示されます。

ここで、CPU情報の中でも特に重要な項目をいくつか見てみましょう。

  • bogomips:「Bogus Millions of Instructions Per Second」の略で、システムのパフォーマンスを表示する独立したプログラムです。
  • model_name:CPUのメーカー、モデル、速度を示します。この例ではIntel(R) Celeron(R) CPUで、動作クロックは1.73GHzです。
  • cpu MHz:チャネル、バス、コンピュータ内部クロックの伝送速度を測る単位です。この例では1733.329MHzです。

ここで問題がはっきりと見えてきます。Intel Celeron 1.73GHzというCPUは古いプロセッサで、処理能力がほとんどありません。シングルコアで低クロック動作のCPUであり、最近の多くのCPUが16コア・約5GHzで動作していることとは対照的です。

解決策

古くて遅いCPUを使っている場合、唯一の解決策は新しいCPUへの交換です。新しいプロセッサを購入するときの選び方のポイントを事前に押さえておきましょう。

起動時に開始されるサービスを確認する

起動時に開始されるサービスを確認する方法はいくつかあります。以下のコマンドのいずれかを使用できます。

このコマンドは、起動時に開始されるすべてのサービスを一覧表示します。

service --status-all

このコマンドも起動時に開始されるサービスを一覧表示します。CentOS、AlmaLinux、Fedora、RHELと互換性があります。

chkconfig --list

こちらのコマンドでも起動時に開始されるサービスを一覧表示できます。

initctl list

initctlはデーモン制御ツールで、システム管理者がUpstartデーモンと通信・対話することを可能にします。

systemdを採用しているシステムでは、次のコマンドで起動時に実行されるサービスを確認できます。

sudo systemctl list-unit-files --state=enabled

解決策

systemdを使用しているLinuxディストリビューションでは、systemctlコマンドでサービスを管理でき、起動時に不要なサービスが実行されないように設定できます。

CPU負荷を確認する

起動時のサービス確認に加えて、プロセッサ/CPUが過剰なプロセスで高負荷になっていないかもチェックしましょう。topコマンドやその他のシステム監視ツールを使ってCPU負荷を確認できます。

topコマンドは、使用率の高いプロセスを上位に並べて表示します。画面を見れば、どのプロセス/アプリケーションがCPUを浪費しているのか一目瞭然で、必要に応じてkillコマンドで終了させることもできます。

解決策

あまりにも多くのアプリケーション(フォアグラウンドとバックグラウンドの両方)を同時に実行していて、CPUの性能が追いつかない場合は、使っていないアプリケーションを閉じるのが得策です。また、バックグラウンドで動作している不要なアプリケーションも無効化しましょう。

あるいは、preloadを使ってよく使うアプリケーションを事前に読み込ませるのも有効です。Preloadはバックグラウンドで動作し、頻繁に実行されるアプリケーションを分析するデーモンです。

ターミナルを開いて、以下のコマンドを実行してください。

# Ubuntu/Debian
sudo apt install preload
 
# Fedora
sudo dnf install preload

Preloadはバックグラウンドで自動的に動作するため、特別な設定は不要です。よく使うアプリケーションの一部をメモリに読み込んでおくことで、これらのアプリケーションの起動を高速化します。

空きメモリ容量を確認する

RAMは、よく使うアプリケーションが格納される場所です。freeコマンドを使えば、RAMの空き容量などのメモリ情報を確認できます。メモリ容量が少ないことも、パソコンのパフォーマンス低下につながります。

解決策

RAMを増設するか、メモリを大量に消費するアプリケーションを軽量な代替品に置き換えましょう。LibreOfficeなどはかなりメモリを消費するアプリケーションです。LibreOfficeの代わりにAbiwordを使うという選択肢もあります。

ハードディスクが過労になっていないか確認する

ハードディスクのアクセスランプが点滅し続けているのに、何をしているのか分からないことはありませんか? 原因不明の入出力(I/O)はトラブルの元です。そんなときは、iotopというtop風のツールが、まさにこうした問題の診断に役立ちます。

ターミナルを開いて、以下のコマンドを入力してください。

# Ubuntu/Debian
sudo apt install iotop
 
# Fedora/CentOS
sudo dnf install iotop

通常のアイドル状態のシステムでは、ほぼすべてがゼロで表示され、データ書き込み時にわずかな変動が見られる程度のはずです。

一方、findのようなディスク負荷の高いユーティリティを実行すると、その名前とスループットがiotopにはっきりと表示されます。

これで、どのプログラムがI/Oを使用しているのか、誰が実行したのか、データの読み取り速度はどのくらいかなどが簡単に把握できるようになります。

まとめ

システムの動作が遅くなる原因はさまざまですが、パフォーマンス問題の大半はCPU、RAM、ディスクI/Oに起因しています。ここで紹介した方法を活用すれば、パフォーマンス問題の原因を特定し、適切な対処法を見つけられるでしょう。

さらにUbuntuシステムを高速化したい方は、専用ガイドも参考にしてみてください。また、Wi-Fiに問題がある場合は、LinuxでWi-Fiが繋がらない問題を解決するガイドもぜひご覧ください。

  1. Linuxのteeコマンド使い方ガイド|画面表示とファイル保存を同時に実現

    Linuxシェルでパイプやリダイレクトを使っているなら、teeコマンドの出番もきっとあるはずです。teeは「標準出力に表示しながら、同時にファイルにも書き込む」ことができる便利なユーティリティです。この記事では、teeコマンドの基本操作から、sudoとの組み合わせ、追記モード、エラー出力の扱い方まで、実例を交えながら詳しく解説します。 teeコマンドとは何をするもの? まず、次のようなコマンドを見てみましょう。 ls このコマンドは、現在のディレクトリの内容を表示します。つまり、標準出力(stdout)へ出力するわけです。標準出力とは通常、画面、正確には仮想端末のディスプレイのことです

  2. Windows 10の動作が遅い原因を特定して解決する方法

    お使いのWindows 10パソコンの動作が遅くてお困りではありませんか?その場合、この記事で原因を突き止めることができます。多くのWindows 10環境では、明確な理由もなく動作が遅くなる問題が発生することがあります。これは、ウイルス対策ソフトなどのプログラム、あるいはバックグラウンドで動作する単一のWindowsプロセスやサービスが、CPUやメモリのリソースを過剰に消費していることが主な原因です。 これまでにも、Windows 10パソコンを高速化するためのさまざまな対策をまとめたチュートリアルや、CPU使用率・ディスク使用率の異常など、個別の高負荷問題を解決するための記事を多数公開して