VPSの不具合が起こったので、とりあえずメモしておこう。 数カ月間なんの文句もなく稼動していたサーバが何かの拍子で徐々に言うことを聞かない子になってしまった。 前触れだったのか不具合が起こる前はWordPressの動作が遅かった気がする。 でも、なんとか動いてた。 数日前からは、不定期的にカーネルログを吐き出して、動作が不安定になる。 Webサーバは停止してSSHでログイン出来ない時もあれば、出来る時もあるみたいな状態になった。 ログの一部(めちゃめちゃ出てくるので・・)こんな感じで吐き出してくる。
Aug 15 09:13:13 brokendish kernel: [34669.589331] kjournald D 0000000000000000 0 750 2 Aug 15 09:13:13 brokendish kernel: [34669.589331] ffff81001d953d30 0000000000000046 0000000000000000 ffffffff8021f26e Aug 15 09:13:13 brokendish kernel: [34669.589331] ffff81001f8cb630 ffffffff804fa480 ffff81001f8cb8b8 0000000080a31000 Aug 15 09:13:13 brokendish kernel: [34669.589331] ffff8100010016c0 0000000000000000 00000000fffffffd 0000000000000001 Aug 15 09:13:13 brokendish kernel: [34669.589331] Call Trace: Aug 15 09:13:13 brokendish kernel: [34669.589331] [] pvclock_clocksource_read+0x3a/0x71 Aug 15 09:13:13 brokendish kernel: [34669.589331] [] sync_buffer+0x0/0x3f Aug 15 09:13:13 brokendish kernel: [34669.589331] [] io_schedule+0x5c/0x9e Aug 15 09:13:13 brokendish kernel: [34669.589331] [] sync_buffer+0x3b/0x3f Aug 15 09:13:13 brokendish kernel: [34669.589331] [] __wait_on_bit+0x40/0x6e Aug 15 09:13:13 brokendish kernel: [34669.589331] [] sync_buffer+0x0/0x3f Aug 15 09:13:13 brokendish kernel: [34669.589331] [] out_of_line_wait_on_bit+0x6c/0x78 Aug 15 09:13:13 brokendish kernel: [34669.589331] [] wake_bit_function+0x0/0x23 Aug 15 09:13:13 brokendish kernel: [34669.589331] [] :jbd:journal_commit_transaction+0x710/0xbf2 Aug 15 09:13:13 brokendish kernel: [34669.589331] [] lock_timer_base+0x26/0x4b Aug 15 09:13:13 brokendish kernel: [34669.589331] [] :jbd:kjournald+0xc1/0x1fb Aug 15 09:13:13 brokendish kernel: [34669.589331] [] autoremove_wake_function+0x0/0x2e Aug 15 09:13:13 brokendish kernel: [34669.589331] [] :jbd:kjournald+0x0/0x1fb Aug 15 09:13:13 brokendish kernel: [34669.589331] [] kthread+0x47/0x74 Aug 15 09:13:13 brokendish kernel: [34669.589331] [] schedule_tail+0x27/0x5c Aug 15 09:13:13 brokendish kernel: [34669.589331] [] child_rip+0xa/0x12 Aug 15 09:13:13 brokendish kernel: [34669.589331] [] lapic_next_event+0xf/0x13 Aug 15 09:13:13 brokendish kernel: [34669.589331] [] kthread+0x0/0x74 Aug 15 09:13:13 brokendish kernel: [34669.589331] [] child_rip+0x0/0x12 Aug 15 09:13:13 brokendish kernel: [34669.589331] Aug 15 09:14:29 brokendish kernel: [34715.574650] master D ffff810001001eb8 0 1889 1 Aug 15 09:14:29 brokendish kernel: [34715.574650] ffff81001e1dbb98 0000000000000082 ffff81001e1dbb58 0000000000000292 Aug 15 09:14:29 brokendish kernel: [34715.574650] ffff81001f870d60 ffff81001f98c480 ffff81001f870fe8 00000000000c8407 Aug 15 09:14:29 brokendish kernel: [34715.574650] ffff81001f002b50 ffffffff802ba771 0000000000000000 ffffffff80246133 : : : |
ヤバイ。。これはいつものパターンから言って「いじくりまわして壊す」フラグが立った、
お盆で休みっぽいけど、さくらさんに問い合せてみた。
そしたら以下のような回答を頂けたので、やってみたよ。(早々な回答ありがとうございます。)
目次
高精度タイマーHPETを導入する
「HEPT」= High Precision Event Timer (高精度イベント タイマー)らしい
・まずは、利用可能のclocksourceを確認する
# cat /sys/devices/system/clocksource/clocksource0/available_clocksource
kvm-clock hpet acpi_pm jiffies tsc
↑
hpetが入ってるので使える |
・そして、現在のclocksourceを確認する
# cat /sys/devices/system/clocksource/clocksource0/current_clocksource
kvm-clock |
・kvm-clock→hpetに変更する
# echo hpet > /sys/devices/system/clocksource/clocksource0/current_clocksource |
・このままだと、再起動したら戻ってしまうのでGrubに記述しておく
・/boot/grub/menu.lst の kernelの行に clocksource=hpet を追記してgrub反映
コマンドを実行する。
vi /boot/grub/menu.lst ## ## End Default Options ## title Debian GNU/Linux, kernel 2.6.26-2-amd64 root (hd0,0) kernel /boot/vmlinuz-2.6.26-2-amd64 root=/dev/hda1 ro console=tty0 console=ttyS0,115200n8r quiet clocksource=hpet initrd /boot/initrd.img-2.6.26-2-amd64 title Debian GNU/Linux, kernel 2.6.26-2-amd64 (single-user mode) root (hd0,0) kernel /boot/vmlinuz-2.6.26-2-amd64 root=/dev/hda1 ro console=tty0 console=ttyS0,115200n8r single initrd /boot/initrd.img-2.6.26-2-amd64 ### END DEBIAN AUTOMAGIC KERNELS LIST |
・grub反映コマンドを実行
# grub-install /dev/hda |
これで完了。
対応してからは(2日目だけど)上のようなカーネルログも出さないし、なんとか回避出来てる感じ。。よかった。