- delay_before_retryを長めに、delay_loopを短めにして瞬断してもすぐ復帰するようにする
- サービスレベルでリトライするヘルスチェックにする
できれば2がいいなー。
とりあえすこないだかいたスクリプトを修正。
#!/bin/sh URL=$1 WGET=/usr/bin/wget RETRY=3 TIMEOUT=3 WAIT=1 function check { $WGET --spider -t 1 -T $TIMEOUT -O - "$URL" if [ $? -eq 0 ]; then exit 0 fi } for i in `seq $RETRY`; do check sleep $WAIT done exit 1
virtual_server 192.168.11.100 80 {
delay_loop 15
lb_algo rr
lb_kind DR
protocol TCP
real_server 192.168.11.15 80 {
weight 1
MISC_CHECK {
misc_path "/usr/local/bin/keepaliced_http_get http://192.168.11.15/keepaliced_HTTP_GET"
misc_timeout 12
}
}
}とりあえず瞬間的な500は許容するようになった。