Linuxは強力で柔軟なオペレーティングシステムであり、サーバー、組み込みシステム、さらにはパーソナルコンピューターで広く使用されています。ただし、最高の構成されたシステムでさえ、時間の経過とともにパフォーマンスのボトルネックに直面する可能性があります。 Linuxシステムの効率的な操作を確保するためには、パフォーマンスのチューニングが重要です。これにより、リソースの利用を最適化し、不必要な減速を回避できます。
このガイドは、CPU、メモリ、ディスクの最適化という3つの重要な領域に焦点を当てたLinuxパフォーマンスチューニング方法を提供します。あなたがシステム管理者、DevOpsエンジニア、またはLinux愛好家であるかどうかにかかわらず、これらの最適化を理解して実装することで、システムの応答を増やし、リソースの無駄を減らし、システムがスムーズに実行されるようにします。
さらに最適化する前に、システムのパフォーマンスメトリックを必ず理解してください。これらのメトリックを監視することで、パフォーマンスの問題を診断し、情報に基づいた調整決定を下すことができます。
キーパフォーマンスインジケーター(KPI) - CPU使用量:プロセスがとるCPU時間の割合。
パフォーマンス監視ツールLinuxは、これらのメトリックを測定するためのさまざまなツールを提供します。
CPUボトルネックは、プロセス負荷が高い、非効率的なスケジューリング、またはCPUリソースの競合により発生する可能性があります。 CPUのパフォーマンスを最適化する方法は次のとおりです。
CPUボトルネックを識別して、次のコマンドを使用してCPUの問題を診断します。
トップHTOP MPSTAT -P ALL 1 SAR -U 5
最適化されたプロセススケジューリング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
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アクティビティを確認してください:
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
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を使用します。
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 -n 100000
SystemCtl Disable Service_name
Webサーバー上の高いCPU負荷- 高いPHP -FPM CPU使用量が識別されます。
データベースサーバー上の過剰ディスクI/O-ログを移動してディスクを別々にします。
パフォーマンスチューニングは、監視、分析、最適化を含む継続的なプロセスです。このガイドで概説されているベストプラクティスに従って、Linuxシステムがスムーズかつ効率的に実行されるようにすることができます。
以上がLinuxシステムのパフォーマンスチューニング:CPU、メモリ、およびディスクの最適化の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。