CS鯖構築・Linuxカーネル編

みんなから「お前の鯖のAKの弾の飛び方はおかしい!」といわれた。
僕はそんな気はしないのだけれども。何がいけないのかなぁ。
一応WEB鯖もかねているけど、アクセスなんかほとんどないのだからあまり関係ない気もする。
サーバのFPSは500前後出るんだけど、FPS1000ぐらい出ないと不満なんですかね。
まぁ暇だし、FPS1000が出るようにカーネルを再構築しますか、ってことで。


調べると結構出るもので、特にわかりやすかったところ、関連するところをピックアップ。

とりあえずカーネルを再構築。


今のばーじょん

uname -r
 2.6.18-92.1.22.el5

今のサーバのFPS

stats
CPU   In    Out   Uptime  Users   FPS    Players
 0.70  0.00  0.00       0     0  515.00       0

カーネルLinuxの中枢とも言える部分なので、最新版を使うに越したことはありません。
現在は2.6.29らしい。The Linux Kernel Archives で入手できる。

wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.29.tar.gz
tar xfz linux-2.6.29.tar.gz
cd linux-2.6.29


設定ファイルをコピーする。

find /boot -name "config*"

で、今のconfigファイルを見つけ出して、

cp -R /boot/config〜 .config

とやってコピーする。

make menuconfig

カーネルの設定をする。
(テキストなGUIっぽい設定画面がでるが、SSHでリモート接続するソフトPoderosa上でも操作は出来る)
今回は、CSの鯖のチューニングが目的なので、他はあまりいじらない。
でもDELLなんちゃらとかToshibaなんちゃらとかは、そのメーカーのPCでないなら切っていい。

  • Processor type and featuresの
    • High Resolution Timer Supportにチェック
    • Processor family (CPUの種類, Cerelon4x0系ならPentium Mなど。)
    • Preemption Model (Preemptible Kernel (Low-Latency Desktop))
    • Timer frequency (1000HZ)

このあたりを設定すればOK。
Processor familyに関しては http://en.gentoo-wiki.com/wiki/Safe_Cflags/Intel を参考にした。

以下のファイルの中身を編集する。

./include/asm-frv/param.h
./include/asm-m32r/param.h
./include/asm-mn10300/param.h

viなりで開いて、

#define USER_HZ         100
  ↓
#define USER_HZ         1000

と、変更。


./include/linux/jiffies.h
の編集は、特にいらない。(既に追加されていたので。)


後はコンパイルして、インストールするだけ。
コンパイル作業が結構長い。Cerelon420で20分近くry

make bzImage
make modules

make modules_install
make install


/etc/grub.conf を編集。

default=1
  ↓
default=0


再起動

shutdown -r now


バージョンを確認。

uname -r
 2.6.29


サーバのFPSを確認

stats
CPU   In    Out   Uptime  Users   FPS    Players
 6.40  0.00  0.00       0     0  805.15       0

FPSが1000行かなかった件について。
そしてCPUの使用率が10倍ぐらい上がってるry
でもまぁ、




             /) 
           ///) 
          /,.=゙''"/ 
   /     i f ,.r='"-‐'つ____   こまけぇこたぁいいんだよ!! 
  /      /   _,.-‐'~/⌒  ⌒\ 
    /   ,i   ,二ニ⊃( ●). (●)\ 
   /    ノ    il゙フ::::::⌒(__人__)⌒::::: \ 
      ,イ「ト、  ,!,!|     |r┬-|     | 
     / iトヾヽ_/ィ"\      `ー'´     / 


この「やった」ということが大事なんだよ!