余計なサービスを削除する # chkconfig --del canna
atimeを使わない # mount -t ext2 -o noatime /dev/hda1 /
ramエリアを確保する # mke2fs /dev/ram 1024
ramをモジュールで利用する # insmod rd rd_size=102400
tmpfsを利用して動的にメモリベースのファイルを利用する。 # mount -t tmpfs /dev/shm /tmp
ホットファイルの発見 # find /foo -mmin -10
DMAを設定する
DMAの設定を確認します # hdparm /dev/hda DMAの設定をします # hdparm -d1 /dev/hda 16bitから32bitに変更します # hdparm -c1 /dev/hda
gcc最適化
CFLAGSもしくはCXXFLAGS、コマンドラインで-On(nは0~3)を指定 -marchと-mcpuでcpuに対して最適化 デバッグ情報の削除 # strip true
プロセスの優先順位を変更します $ nice -n 10 slocate
XWindowでロードするモジュールを減らす XF86Configを修正
フォントサーバーの停止 # chkconfig xfs off; # chkconfig --del xfs
ビットマップフォントを使用しない XF86Configでunscaledを指定
FontPath "/usr/X11R6/lib/X11/fonts/japanese/:unscaled"
Xサーバーを再構築してCPUに対して最適化する xf86site.def
VRAMの書き込みにMTRRを利用する write-combiningを/proc/mtrr以下に書き込む
PPPoEをカーネル空間で動作させる
IPパケットフレーム長を長くする # ifconfig eth1 mtu 1454
CPUのパフォーマンスを調べる /proc/cpuinfo, vmstat, mpstat
CPU数を増やす(ただしマルチスレッド対応のアプリケーションでなければ効果は薄いかもしれない)
キャッシュを増やす(CPUにすでに積まれているので、BIOSやOS側での設定変更は不可。
複数NICを束ねる(ボンディング/チーミング)
2通りの方法
送信ロードバランシング: ネットワークスイッチとNICを組み合わせる リンクアグリゲーション: IEEE802.3ad, Cisco Ethernet Channel
監視
ボトルネックはどこにあるか
H/W クライアント→ ケーブル→ハブorスイッチorルータ→ ケーブル→ NIC→ サーバー(キャッシュ・メモリ・RAID・ディスク・CPU・バス)
改善個所の決定
改善方法の選択肢
改善
[参照]
Linuxチューニング