ちょっとサーバ周りで迷ったのでお勉強。
- [24時間365日] サーバ/インフラを支える技術 ‾スケーラビリティ、ハイパフォーマンス、省力運用 (WEB+DB PRESS plusシリーズ)
- 安井 真伸 横川 和哉 ひろせ まさあき 伊藤 直也 田中 慎司 勝見 祐己
- 技術評論社 2008-08-07
by G-Tools , 2011/05/29
この本を元に、リバースプロキシ導入したお陰で、相当サーバは安定しました。
でも、まだまだ足りない…。次に使えそうなネタないかなぁ…。
ちょっと色々と試してみたので、公開。
うちのシステムは、RedHat4系とCentOS5系を使ってます。
なので、rsyncのバージョンは2系です。
rsyncの2系の挙動を見てると、差分チェックの為に、まず全ファイルをリストアップします。
その後、ファイル転送が始まります。
リストはメモリに保持されてるようです。
1000万以上のファイルがあったので、1GBくらいメモリを掴んでしまう。
ファイル転送中もこれはつかみっぱなし。
まぁ、1000万以上のファイルがあるって時点で当たり前だけどw
そこで、rsync3の登場!
こいつは、リストアップしながら転送してくれる。
なので、メモリ使用率は圧倒的に少ない。(topで見てたんだけど使用率は0%のまま)
その代わり、瞬間的にCPU使用率は上がってた気がする。
でも、これはマルチコアCPUなら問題ない。
で、まずは全ファイル転送を計測してみたら、rsync3系の実行時間がrsync2系に比べて、14%程少なかった。
そして、少し差分が出た状態で再びrsync。(30万ファイルくらいの差分)
この差分転送にかかる時間は凄い差が出た。
rsync3系の実行時間がrsync2系に比べて50%!
というわけで、rsync3の導入決定!
でも、多分サービス止めてパーティションをddでごっそりコピーした方が早いと思う。
HDDならランダムアクセスよりシーケンシャルアクセスに限るよね。
でも、その手段が取れない場合は、rsync3を導入すると幸せになれますよ。
1000万ファイルのデータ移行について検討中。
今までは、rsync使ってました。
これで、データ移行しようとすると、
40時間くらいかかってしまうのですよ…。
(サービス停止せずにやっているので)
サービス停止しても、4時間くらいかかるんだろうなぁと思ってます。
なんかいい方法ないかな?
はてなのデータセンターお引越しとかは、パーティション毎ddしたって書いてあったけど、
ちょっと面倒な構成なので、ディスク外して新サーバに直結とかはできない…。
外付けHDDとかにddでコピーすればいいのかな?
tarは、サービス停止させても3時間くらいかかりそうであまり大差ない感じ。
妙案求ム!!
よくやるけど忘れてしまうのでメモ。
1. rootでログイン
2. /etc/login.defs に以下のレコード追加
SU_WHEEL_ONLY yes
3. /etc/pam.d/su に以下のレコード追加
auth required pam_wheel.so group=wheel
4. 再起動
# shutdown -r now

最新コメント