ホームページ > システムチュートリアル > Linux > Linuxシステムのパフォーマンスチューニング:CPU、メモリ、およびディスクの最適化

Linuxシステムのパフォーマンスチューニング:CPU、メモリ、およびディスクの最適化

Joseph Gordon-Levitt
リリース: 2025-03-26 09:02:10
オリジナル
909 人が閲覧しました

Linuxシステムのパフォーマンスチューニング:CPU、メモリ、およびディスクの最適化

導入

Linuxは強力で柔軟なオペレーティングシステムであり、サーバー、組み込みシステム、さらにはパーソナルコンピューターで広く使用されています。ただし、最高の構成されたシステムでさえ、時間の経過とともにパフォーマンスのボトルネックに直面する可能性があります。 Linuxシステムの効率的な操作を確保するためには、パフォーマンスのチューニングが重要です。これにより、リソースの利用を最適化し、不必要な減速を回避できます。

このガイドは、CPU、メモリ、ディスクの最適化という3つの重要な領域に焦点を当てたLinuxパフォーマンスチューニング方法を提供します。あなたがシステム管理者、DevOpsエンジニア、またはLinux愛好家であるかどうかにかかわらず、これらの最適化を理解して実装することで、システムの応答を増やし、リソースの無駄を減らし、システムがスムーズに実行されるようにします。

システムパフォーマンスインジケーターを理解します

さらに最適化する前に、システムのパフォーマンスメトリックを必ず理解してください。これらのメトリックを監視することで、パフォーマンスの問題を診断し、情報に基づいた調整決定を下すことができます。

キーパフォーマンスインジケーター(KPI) - CPU使用量:プロセスがとるCPU時間の割合。

  • 平均負荷: CPU時間を待っているプロセスの数。
  • メモリ使用量:使用済みのRAMの量。
  • ディスクI/O待機:プロセスがディスクアクセスを待つ時間。
  • パーティションの使用法:使用される仮想メモリの量。
  • コンテキストスイッチ: 1秒あたりのプロセススイッチング時間の数。
  • ディスクスループット:読み取り/書き込み速度とレイテンシ。

パフォーマンス監視ツールLinuxは、これらのメトリックを測定するためのさまざまなツールを提供します。

  • CPUおよびメモリモニタリング: TOP、HTOP、MPSTAT
  • ディスクパフォ​​ーマンス分析: Iostat、IoTop、dstat
  • システムレベルの監視: VMSTAT、SAR
  • パフォーマンス分析と追跡: Perf、Strace
  • プロセスとリソース管理:ニース、ウリミット、cgroups

CPUパフォーマンスチューニング

CPUボトルネックは、プロセス負荷が高い、非効率的なスケジューリング、またはCPUリソースの競合により発生する可能性があります。 CPUのパフォーマンスを最適化する方法は次のとおりです。

CPUボトルネックを識別して、次のコマンドを使用してCPUの問題を診断します。

トップHTOP MPSTAT -P ALL 1 SAR -U 5

  • 高負荷平均および低CPU使用量は、I/Oが待機している問題を示しています。
  • CPUの使用量が高いことは、 CPU集約型プロセスを表します。

最適化されたプロセススケジューリングLinuxは、完全に公正なスケジューラ(CFS)を使用してCPU時間を割り当てます。次のコマンドを使用して、プロセスの優先順位を手動で調整できます。

nice -n 10 process_name renice -n -5 -p pid

タスクセットを使用して、プロセスを特定のCPUに結合します。

taskset -c 0,1 process_name

CPUの使用量を制限して、プロセスがCPUを消費しすぎないようにしてください。CPulimitを使用してください。

cpulimit -l 50 -p pid

コンテナ化された環境の場合、cgroupsを使用してください。

cgcreate -g cpu:/limitedgroup echo 50000>/sys/fs/cgroup/cpu/limitedgroup/cpu.cfs_quota_us cgexec -g cpu:limitedgroup process_name

カーネルパラメーターの調整と調整カーネルパラメーターは、CPUの効率を改善できます。

sysctl -w kernel.sched_min_granularity_ns = 10000000 sysctl -w kernel.sched_wakeup_granularity_ns = 15000000

メモリパフォーマンスの最適化

メモリの問題は、システムを大幅に減速させ、流量と高速化をもたらす可能性があります。

メモリ使用の診断これらのツールを使用して、メモリ統計を確認してください。

Free -M VMSTAT 5 SMEM

メモリ圧力を示す高いスワップパーティション使用(SIおよびSO)を見つけます。

スワップパーティションの使用状況を最適化- スワップパーティションのパフォーマンスを確認します。

Swapon -S

  • スワップパーティションの傾向を調整します。

sysctl -w vm.swappiness = 10

  • 圧縮スワップパーティションZSWAPまたはZRAMを使用します。

ModProbe Zram Echo 1>/sys/block/zram0/reset

キャッシュとバッファーを管理してメモリを解放し、未使用のキャッシュをクリアします。

同期;エコー3>/proc/sys/vm/drop_caches

カーネルバッファーの動作を調整します:

sysctl -w vm.dirty_ratio = 20 sysctl -w vm.dirty_background_ratio = 5

データベースなどのアプリケーションの大きなページの最適化、大きなページを有効にします。

エコー1024>/proc/sys/vm/nr_hugepages

ディスクI/Oパフォーマンスチューニング

ディスクのパフォーマンスは、データベース、ファイルサーバー、および大量のデータを処理するアプリケーションにとって重要です。

ディスクのパフォーマンスを測定- I/Oアクティビティを確認してください:

iostat -x 5 iotop

  • ベンチマークディスクのパフォーマンス:

fio - name = seqwrite - rw = write - bs = 128k - size = 1g - numjobs = 4 - runtime = 60

ファイルシステムの最適化- 最適化されたファイルシステム(Ext4、XFS、BTRFS)を使用します。

  • 必要な場合にのみロギングを有効にします:

tune2fs -o has_journal /dev /sdx

  • NoatimeおよびNodiratimeマウントのオプションを使用します。

Mount -o Remount、noatime、nodiratime /dev /sdx /mnt

ディスクスケジューラは、SSDの変更のためにI/Oスケジューラを最適化します

echo noop>/sys/block/sda/queue/scheduler

HDDの場合:

echo cfq>/sys/block/sda/queue/scheduler

RAIDおよびLVMの最適化- 読み取り/書き込みパフォーマンスを改善するには、RAID 10を使用します。

  • LVMストライピングを最適化します:

lvcreate -i 2 -i 256 -l 10g -n lv_name vg_name

SSD最適化- トリムを有効にする:

fstrim -v /

  • マウント設定を最適化します:

Mount -o discard、defaults /dev /sdx /mnt

一般的なシステム最適化戦略

  • カーネルパラメーターを調整します:

sysctl -w net.core.somaxconn = 1024 sysctl -w fs.file -max = 100000

  • ulimitを使用して、リソースの疲労を防ぎます。

ulimit -n 100000

  • 不要なサービスを無効にする:

SystemCtl Disable Service_name

パフォーマンスチューニングのケーススタディ

Webサーバー上の高いCPU負荷- 高いPHP -FPM CPU使用量が識別されます。

  • タスクセットを使用して負荷を割り当てます。
  • キャッシュを実装すると、CPUの使用量が40%減少します。

データベースサーバー上の過剰ディスクI/O-ログを移動してディスクを別々にします。

  • PostgreSQL Shared_Buffersとwork_memを最適化します。
  • SSDに切り替えると、クエリ時間が60%増加します。

結論は

パフォーマンスチューニングは、監視、分析、最適化を含む継続的なプロセスです。このガイドで概説されているベストプラクティスに従って、Linuxシステムがスムーズかつ効率的に実行されるようにすることができます。

以上がLinuxシステムのパフォーマンスチューニング:CPU、メモリ、およびディスクの最適化の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
関連するチュートリアル
人気のおすすめ
最新のコース
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート