2008/5/17  10:02

poundによる負荷分散(2)  パソコン・インターネット

/etc/logrotate.d/pound
を次のように修正。syslogdのlogrotateは1週間となっているので、7日に1回は2回処理されることになる。

/var/log/pound {
daily
rotate 7
missingok
notifempty
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
/sbin/service pound restart > /dev/null 2>/dev/null || true
endscript
}

2008/5/12  22:58

MERGE テーブルとか  パソコン・インターネット

帯域使い切っていて、データベースも重い、メモリも足りない(今時スワップでスピードダウンですか)、という3重苦のサーバーがあってチューニングに明け暮れました。

MySQL の MERGE テーブルで巨大なテーブルを効率的に運用する

膨大なログをMySQLで管理している箇所があって対策を捜していたらMERGE テーブルというのが参考になるなあと感心しました。
まだ試していないけど。slow queries からちまちま対策入れるけど。

2008/5/11  12:37

poundによる負荷分散  パソコン・インターネット

apache2とlighttpdを併用しながらpoundによる分散を行った。
以下作業メモ。

--------
http://www.lighttpd.net/
http://www.kozupon.com/lighttpd/
http://www.cyberciti.biz/tips/howto-lighttpd-web-server-setting-up-virtual-hosting.html
http://d.hatena.ne.jp/rx7/20070306/p1

http://www.apsis.ch/pound/index_html
http://www.eitaro-saba.com/001/pound_1.html
http://tech.bayashi.jp/archives/entry/server/2007/001945.html

http://stderr.net/apache/rpaf/
http://www.drk7.jp/MT/archives/000573.html



--------
ユーザーを作成する。
adduser pound

vipwで/sbin/nologinへ変更する。deamonを参考にした。

変更後
pound:x:501:501:pound load balancer:/sbin:/sbin/nologin



--------
/usr/local/etc/pound.cfg
を作成し、以下を記述。

下記の設定では
/image/内 /skin/*.js /skin/pangya/内をlighttpdへ
それ以外をapache2へ分けている

User "pound"
Group "pound"
LogLevel 3
Alive 60
Daemon 0

LogFacility local1

ListenHTTP
Address 192.168.11.250
Port 80

Service
URL "/image/.*"
BackEnd
Address 127.0.0.1
Port 8001
End
End

Service
URL "/skin/pangya/.*"
BackEnd
Address 127.0.0.1
Port 8001
End
End

Service
URL "/skin/.*.js"
BackEnd
Address 127.0.0.1
Port 8001
End
End

Service
BackEnd
Address 127.0.0.1
Port 8000
End
End
End


--------
/etc/init.d/pound
を作成し、以下を記述

#! /bin/sh
# chkconfig: 2345 95 95
# description: pound

POUND_HOME=/usr/local
POUND_PID=/var/run
NAME=pound
DESC="pound"

set -e

#Remove write permission for others
umask 002

case "$1" in
start)
echo -n "Starting $DESC: "
/usr/sbin/pound -v -f $POUND_HOME/etc/pound.cfg -p $POUND_PID/pound.pid 2>&1 &
echo "$NAME."
;;
stop)
echo -n "Stopping $DESC: "
kill `cat $POUND_PID/pound.pid`
echo "$NAME."
;;
restart)
echo -n "Restarting $DESC: "
kill `cat $POUND_PID/pound.pid`
sleep 1s
/usr/sbin/pound -v -f $POUND_HOME/etc/pound.cfg -p $POUND_PID/pound.pid 2>&1 &
echo "$NAME."
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart}" >&2
exit 1
;;
esac



--------
/etc/syslog.conf
に追加

# Pound
local1.* /var/log/pound



--------
/etc/logrotate.d/pound
を作成し、以下を記述

/var/log/pound {
missingok
notifempty
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/pound.pid 2>/dev/null` 2> /dev/null || true
endscript
}



--------
init.dの追加を行う。
/etc/init.d/pound にchkconfigとdescriptionの記述があれば簡単。

chkconfig --add pound



--------
mod_rpafを導入

wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
で取得する。すでにインストール済みであればいいが、そうでない場合は

yum install httpd-devel
も必要。Makefileのapxsを変更する

#APXS2=$(shell which apxs2)
APXS2=$(shell which apxs)

ビルド&インストール

/etc/httpd/conf/httpd.confに以下を追加する

LoadModule rpaf_module modules/mod_rpaf-2.0.so
RPAFenable On
RPAFsethostname Off
RPAFproxy_ips 127.0.0.1



--------
mod_extforwardを導入
/etc/lighttpd/lighttpd.conf
の中を修正。

まずserver.modulesにmod_extforwardを追加。
次に設定を記述

## extforward
extforward.forwarder = ("127.0.0.1" => "trust")



--------
pukiwiki plus!ではPROXY制限をかけている。
そこでlib/proxy.cls.phpを変更する。

// array('HTTP_X_FORWARDED_FOR', 1,1), // プロキシサーバ経由の生IP
array('HTTP_X_FORWARDED_FOR', 0,1), // プロキシサーバ経由の生IP

2008/5/10  23:17

ファンを換装しました  パソコン・インターネット

チップセットのファンの異常音といい、寿命っぽいなあと思いつつ、どうせなら改造してみようと思いました。

クリックすると元のサイズで表示します

ヨドバシでXINRUILIAN DragonFly CHIPSETCOOLER を買ってみました。3,990円。
もともとオンボードグラフィック使用で発熱しやすいNorthbridge用クーラーなんですが。

けど。それでもRadeon800XL+ZAV-01に干渉して接続できない。
ついでといってはなんですがHD2600XTのOC版(通常800MHz→830MHzにクロックアップ済み)を購入。ソフマップで13,700円。

クリックすると元のサイズで表示します

通常版と異なるのは大きなファン。あとメモりにすべてヒートシンク搭載済み。

クリックすると元のサイズで表示します

http://ascii.jp/elem/000/000/055/55187/

マザーボードを取り外す大がかりな作業。改造というより内部清掃に近い状況でした。改造って発熱とエアーフローとの戦いのような。
接続しなおして電源入れたら不明なデバイスPCIが出ている。思い当たる節がないためそのまま放置しそう。

2008/5/6  21:57

インストールする手間とかがちょっと  パソコン・インターネット

かれこれ2年経過。時折マザーボードのチップセットファンから異音がする。
そこでPCを新調しようかなと思い適当に価格を調べてみた。どうせ忘れるからメモ代わり。

P5K-E 14,679円
Core 2 Duo E8400(3.00GHz) 22,980円
JM4GDDR2-8K(2G*2) 9,418円
WindowsVista HomePremium 32bit版(OEM版) 12,600円
小計 59,677円

以前に比べて安い。グラボも2万前後でよさそうなものが買えそう。
しかし面倒なので却下orz

2008/4/29  1:31

表組編集支援を導入してみました  パンヤ

FAQWikiでは一覧表を作成する機会が多いため、従来から悩みの種でした。編集終わったら一段ズレているのに気づいてウキャー(゚Д゚)とかね。
そこで救世主がっ!

表組編集支援プラグイン
http://taru.s223.xrea.com/index.php?PukiWiki%2Fmake%2Ftable_edit2.inc.php

あくまで試用です。ある日突然なくなるかもしれません。
人柱を兼ねるということもあります。どこまで使いこなせるか分からないけどtaruさんに感謝。

2008/4/28  23:23

Wikiを移転しました  パンヤ

光回線があるので。
利用していたレンタルサーバーが問題を起こすので。
コスト削減。

CSSとかJavaScriptとかそんなのばっかりorz
現状で確認している問題点:

・TrackerListの並び替えについて
sortabletable.jsの修正を入れたものを使用。現状ではそれなりに並び替えられる。しかし↓↑の記号が連動していません。

・プレビューの挙動について
プレビューを押すと折り畳まれスクロール表示にならない(プレビューがすべて表示されている。)その状態で再度プレビューを押すと空になり、もう一度押さないと最初の状態に戻らない。

・minicalendar_viewerのデザインについて
祝日に対応のカレンダーですが、記事の間が少し開いています。

一応IE7とFirefox2とOpera9で表示テスト。ブラウザ毎に微妙に見え方が違うけど気にしちゃダメダ。
Safariは環境がないので分かりません。

2008/4/27  15:05

PCサーバーを用意していました  パソコン・インターネット

クリックすると元のサイズで表示します

構成は次の通り

ベアーボーン:EX945-GC S1
CPU:Celeron 430(1.80GHz)
メモリ:DDR2 1GB PC5300 CL5 Samsung純正(バルク)
HDD:ST3160815AS(160G SATA300 7200)

送料税込みで約3万3千円。
DVD-Rはインストール後はずしてしまうので購入せずPCに入れてあるものを一時的にはずして使いました。

クリックすると元のサイズで表示します
CPUファンが変わっていて、どうやらこの向きであっているらしい。

インストールしたのはCentOS5.0。最新は5.1だけど都度DVDを焼くのが面倒なので5.0入れてからアップデート。
ifconfig -a でeth0が出てこない。それで調べた結果は

http://wiki.centos.org/HardwareList/RealTekRTL8101

Problem:
Correct driver is not included with the standard CentOS 4.5, 5.0 and 5.1 distributions.

つまりそのNICのドライバは自分でインストールしなきゃいけない(どうやって?)
こういう感じのトラブルはかなり久しぶりで浦島太郎状態。

パッケージを最小構成というか、何も選択しないでインストールしたのでgccすらついていない。
再インストールしてもドライバがないわけだし。そこで以下のRPMを別のPCでダウンロードしました。makeとかさすがに要らないだろうと思いつつ念のため。

binutils-2.17.50.0.6-2.el5.i386.rpm
dkms-2.0.17.6-1.el5.rf.noarch.rpm
dkms-r8101-1.006.00-1.noarch.rpm
gcc-4.1.1-52.el5.i386.rpm
glibc-devel-2.5-12.i386.rpm
glibc-headers-2.5-12.i386.rpm
kernel-devel-2.6.18-8.el5.i686.rpm
kernel-headers-2.6.18-8.el5.i386.rpm
libgomp-4.1.1-52.el5.i386.rpm
make-3.81-1.1.i386.rpm

CD-Rに焼く方法は、現在手元にあるのがDVD+R DLなので高くつく上に面倒。なにが面倒かと言うと、DVD-Rが1基しかないので接続しなおしが面倒です。
HD30GB9に入れてUSBリムーバブルHDDな扱い方で移動しました。USBに対応するカーネル2.6って便利だなと感じました。

有用だなと感じたのはやはりdkms(Dynamic Kernel Module Support)です。
事前にパッケージをインストールしておくことでカーネルの更新が発生してもリブート時に自動でモジュールをビルド&インストールまでしてくれるもの。

あとは割りと普通に進行。
resolv.confをいじったり、RPMforge(すなわちDAGレポジトリ)追加、yum updateを実行、(使う機会はないが)postifixをインストール、不要なサービスの停止。など。

2008/4/23  21:39

grayboxを入れ替えてみました  パンヤ

i18n版だと常に読んでいるJavaScriptがあって、kanzaki.jsとglossary.jsを無効に変更。
せっかくなのでgrayboxを新しいバージョンに入れ替え、refプラグインの呼び出し時に利用するように修正してみました。あまり役には立たないかも。

2008/4/20  23:20

i18nでajaxeditその2  パンヤ

UTF-8版になって気づいたことまとめ:
・ファイル一覧でメモリ不足エラーが出る。
・メモリ不足エラーで編集できないページが発生している。エラーメッセージによるとバックアップを取るところのようです。
・ProxyCheckやあらしお断りシステムの導入が容易になっています。
・↑とは別にスパムリストとしてホスト名/ドメイン名が入っている(有効にする方法はまだ不明)
・相変わらず不定期でパースエラーが発生

以上からUTF-8版を使い続けるためにはサーバーのスペック不足が大きいかと思われます。検討中。

RSS1.0