[Ultramonkey-l7-users 614] Re: l7vsd(ver 3.1.2)が突然停止しました

Back to archive index

小林 年伸 toshi****@jig-s*****
2015年 12月 28日 (月) 19:01:31 JST


竹田様

お世話になっております。
ジグソーの小林と申します。

ご確認と対応方法のご教授ありがとうございます。
--forwarded-for は設定しています。

設定ファイルは添付させていただきます。
ホスト名、SSLのファイル名などは伏せてあります。

ログはメールに記載でもよろしいでしょうか。
こちらもノード名などは伏せさせていただきました。
発生は 12/25 12:59頃になります

○l7vsd.log
-----------------------------------------------

-----------------------------------------------
l7vsdのメインのログですが出力がありませんでした。

○l7directord.log
-----------------------------------------------
[Fri Dec 25 12:58:55 2015|4771] [INF0006] Exiting with exit status 0: 
Reached end of `main'
[Fri Dec 25 12:59:05 2015|4957] [INF0006] Exiting with exit status 0: 
Reached end of `main'
[Fri Dec 25 12:59:15 2015|5114] [INF0006] Exiting with exit status 0: 
Reached end of `main'
[Fri Dec 25 12:59:25 2015|5277] [INF0006] Exiting with exit status 0: 
Reached end of `main'
[Fri Dec 25 12:59:35 2015|5452] [INF0006] Exiting with exit status 0: 
Reached end of `main'
[Fri Dec 25 12:59:45 2015|5600] [INF0006] Exiting with exit status 0: 
Reached end of `main'
[Fri Dec 25 12:59:56 2015|5748] [INF0006] Exiting with exit status 0: 
Reached end of `main'
[Fri Dec 25 13:00:06 2015|5955] [INF0006] Exiting with exit status 0: 
Reached end of `main'
-----------------------------------------------
バックエンドサーバーは特に問題なかったのでこのようになっています。

○l7vsadm.log
-----------------------------------------------
2015/12/25 12:59:56 [ERROR] l7vsadm_common ADM43100009 connect() failed: 
Connection refused. 〓ノード名〓 0x7fc39470b760 l7vsadm.cpp:3105
2015/12/25 13:00:56 [ERROR] l7vsadm_common ADM43100009 connect() failed: 
Connection refused. 〓ノード名〓 0x7f22af745760 l7vsadm.cpp:3105
-----------------------------------------------
cronで1分に1回 l7vsadm -V を実行して情報収集してますので
l7vsdが停止したことでエラーがでていました、これより以前は出力がありません。

○/var/log/messages
-----------------------------------------------
Dec 25 12:59:26 pm_logconv: [1173]:   error: detect_rsc_failure(): 
failed to parse log message. [notice: process_lrm_event: Operation 
L7vsd_monitor_10000: not running (node=〓ノード名〓, call=24, rc=7, 
cib-update=3078, confirmed=false)]
Dec 25 12:59:26 pm_logconv: [1173]:   error: try_to_operate(): failed to 
parse log message. [info: do_lrm_rsc_op: Performing key=〓Key情報〓 
op=L7vsd_stop_0]
Dec 25 12:59:26 pm_logconv: [1173]:   error: operation_succeeded(): 
failed to parse log message. [notice: process_lrm_event: Operation 
L7vsd_stop_0: ok (node=〓ノード名〓, call=166, rc=0, cib-update=3080, 
confirmed=true)]
-----------------------------------------------
当該時間帯の出力はpacemakerのもののみでした。

○バックエンドのapacheエラーログ
-----------------------------------------------
[Fri Dec 25 12:43:19 2015](32)Broken pipe: core_output_filter: writing 
data to the network
[Fri Dec 25 12:54:16 2015](104)Connection reset by peer: 
core_output_filter: writing data to the network
[Fri Dec 25 12:55:04 2015](104)Connection reset by peer: 
core_output_filter: writing data to the network
-----------------------------------------------
12時台には上の出力しかありませんでした。何れも「info」レベルです


apacheのアクセスログはセキュリテイ上の理由からご提供できないのですが
具体的にこういう情報が必要ということであれば検討させていただきますのでご 
教授ください。


お手数でが何卒、よろしくお願いいたします。


On 2015/12/28 16:04, 竹田健二 wrote:
> 小林様
>
> コミュニティメンバの竹田です。
>
> UltraMonkey-L7がダウンしたとのことで
> ご迷惑をおかけしております。
>
> 以下、ご質問いただいた件についてです。
>
>> 既出のもので上のような症状はありましたでしょうか。
>  私が知る限りではありません。
>
>> 又、l7vsdのプロセスでDiskへの書き込みが発生する部分として
>> 何が考えられますでしょうか。例えば一時ファイルなど
>> もし分かればその部分をtmpfsとしてメモリ空間に持っていくことも
>> 検討しております。
>  l7vsdでディスク書込みが発生する主な箇所は
>  ログ(l7directord.log以外)書込み時となります。
>
>  ただ、これまでにUltraMonkey-L7では性能検証等を実施した際でも
>  ディスク書込み自体が問題になったということは存じておりませんので
>  他の原因である可能性が高いと思います。(後述)
>
>> #5、protomod_sessionless.so の辺りで何かありましたでしょうか。
>  メールにてご報告いただいたスタックトレースをみると、
>  protomod_sessionlessから呼び出されている
>  find_http_header(パケット中から特定のHTTPヘッダを取得する関数)に
>  問題があるように思います。
>
>> #9  0x00007fc5ff18cd8a in
>> l7vs::http_protocol_module_base::find_http_header(char const*, unsigned
>> long, std::basic_string<char, std::char_traits<char>,
>> std::allocator<char> > const&, unsigned long&, unsigned long&) () from
>> /usr/lib64/l7vs/protomod_sessionless.so
>  よって、まずは本関数を中心に解析を進めてまいりたいと思います。
>  つきましては、問題発生時間帯における以下の情報をいただくことは
>  可能でしょうか。
>
>    ログ:
>   ・/var/log/l7vsd/*
>   ・/var/log/messages
>   ・バックエンドサーバのアクセスログ/エラーログ等
>  設定ファイル:
>   ・/etc/l7vs/*
>   ・/etc/ha.d/l7directord.cf
>
>  
>  なお、本関数は以下のオプションが設定されている場合に
>  呼び出されるため、暫定対処としてこれらのオプションを解除していただければ
>  ひとまず問題は発生しなくなるはずですので、ご検討いただければと思います。
>
>  ①「--forwarded-for(-F)」オプション
>  ②「--statistic(-c)」オプション
>  ③「-f(--flag) 」オプション
>
>  各オプションの設定有無確認方法:
>   「l7vsadm -V 」コマンドの結果、該当VSに以下の表示があれば
>   設定有りとなります。
>
>   ①「--forwarded-for」の文字列がある
>   ②「--statistic 1」となっている
>   ③「Sorry Flag   on」となっている
>
>
> 以上、よろしくお願いいたします。
>
>
>> -----Original Message-----
>> From: ultra****@lists***** [mailto:ultra****@lists*****] On Behalf Of 小
>> 林 年伸
>> Sent: Friday, December 25, 2015 8:43 PM
>> To: ultra****@lists*****
>> Subject: [Ultramonkey-l7-users 611] Re: l7vsd(ver 3.1.2)が突然停止しました
>>
>> コミュニティの皆様
>>
>> お世話になっております。
>> ジグソーの小林と申します。
>>
>> 掲題の件のDumpファイルのトレース結果を記載させていただきます。
>> -------------------------------------------------------------
>> ...... 読み込み
>>
>> Loaded symbols for /usr/lib64/l7vs/sched_lc.so
>> Core was generated by `/usr/sbin/l7vsd'.
>> Program terminated with signal 6, Aborted.
>> #0  0x00007fc605a7a625 in raise () from /lib64/libc.so.6
>>
>> (gdb) bt
>> #0  0x00007fc605a7a625 in raise () from /lib64/libc.so.6
>> #1  0x00007fc605a7be05 in abort () from /lib64/libc.so.6
>> #2  0x00007fc605ab8537 in __libc_message () from /lib64/libc.so.6
>> #3  0x00007fc605abde66 in malloc_printerr () from /lib64/libc.so.6
>> #4  0x00007fc605ac09b3 in _int_free () from /lib64/libc.so.6
>> #5  0x00007fc5ff1a1ef6 in boost::xpressive::detail::regex_impl<char
>> const*>::~regex_impl() () from /usr/lib64/l7vs/protomod_sessionless.so
>> #6  0x00007fc5ff1a21f2 in
>> boost::detail::sp_counted_impl_p<boost::xpressive::detail::regex_impl<char
>> const*> >::dispose() ()
>>      from /usr/lib64/l7vs/protomod_sessionless.so
>> #7  0x00000000004c42d9 in boost::detail::shared_count::~shared_count() ()
>> #8  0x00007fc5ff1913dd in
>> boost::intrusive_ptr<boost::xpressive::detail::regex_impl<char const*>
>>   >::~intrusive_ptr() ()
>>      from /usr/lib64/l7vs/protomod_sessionless.so
>> #9  0x00007fc5ff18cd8a in
>> l7vs::http_protocol_module_base::find_http_header(char const*, unsigned
>> long, std::basic_string<char, std::char_traits<char>,
>> std::allocator<char> > const&, unsigned long&, unsigned long&) () from
>> /usr/lib64/l7vs/protomod_sessionless.so
>> #10 0x00007fc5ff1dacb0 in
>> l7vs::protocol_module_sessionless::handle_client_recv(boost::thread::id,
>> boost::array<char, 4096ul> const&, unsigned long) ()
>>      from /usr/lib64/l7vs/protomod_sessionless.so
>> #11 0x0000000000575c7b in
>> l7vs::tcp_session::up_thread_client_receive(l7vs::tcp_session::TCP_PROCESS_TYPE_TAG)
>> ()
>> #12 0x0000000000571941 in l7vs::tcp_session::up_thread_run() ()
>> #13 0x000000000052303e in l7vs::session_thread_control::upstream_run() ()
>> #14 0x00007fc607792d47 in thread_proxy () from
>> /usr/lib64/libboost_thread-mt.so.5
>> #15 0x00007fc6058329d1 in start_thread () from /lib64/libpthread.so.0
>> #16 0x00007fc605b308fd in iopl () from /lib64/libc.so.6
>> #17 0x0000000000000000 in ?? ()
>> -------------------------------------------------------------
>> #5、protomod_sessionless.so の辺りで何かありましたでしょうか。
>>
>> l7vsdのログには出力が無かったのでこちらを記載させていただきました。
>>
>> 大変お手数ですが、何分かりましたらご教授いただけますでしょうか。
>>
>>
>>
>> On 2015/12/25 15:38, 小林 年伸 wrote:
>>> コミュニ ティの皆様
>>>
>>> お世話になっております。
>>> ジグソーの小林と申します。
>>>
>>> 掲題の件についてご質問させていただいてよろしいでしょうか。
>>>
>>> ■事象
>>> ロードアベレージが突然 200/1分 近くになりl7vsdのプロセスがダウン
>>> 発生時のCPU使用率は2~3%ほどだったが
>>> Diskの書き込み待ちが発生していたよう
>>> これまでも突然ロードアベレージが高くなる(30/1分程度)時間があり
>>> その時もやはりDiskの書き込み待ちが発生していた。
>>> クラスタ構成となっていて、待機・停止している側では
>>> 書き込み待ちは発生していないのでl7vsdが原因と考えております。
>>>
>>> 既出のもので上のような症状はありましたでしょうか。
>>>
>>> 又、l7vsdのプロセスでDiskへの書き込みが発生する部分として
>>> 何が考えられますでしょうか。例えば一時ファイルなど
>>> もし分かればその部分をtmpfsとしてメモリ空間に持っていくことも
>>> 検討しております。
>>>
>>> 停止時にcore_dumpも出力するようにしていたのですが
>>> 如何せんサイズが重いので必要でしたら特定の部分のみを
>>> 取り出して添付するように致します。
>>>
>>> お手数ではございますが、何卒ご確認よろしくお願いいたします。
>>>
>>> ■以下は設定構成となります。
>>> ・UML7ver. ultramonkeyl7-3.1.2-1
>>> ・OS CentOS6.6 (Xen仮想マシン)
>>> ・CPU 8
>>> ・MEM 16GB
>>> ・構成
>>> HTTPをUltraMonkeyでバックエンド3台にlcで振り分け
>>> backendはapache2.2
>>>
>>> ・l7vsd設定
>>> ---------------------------------------------
>>> [logger]
>>> l7vsd_log_filename = "/var/log/l7vs/l7vsd.log"
>>> l7vsd_rotation = "size"
>>> l7vsd_max_backup_index = "10"
>>> l7vsd_max_filesize = "2048M"
>>> l7vsd_accesslog_rotate_type = "size"
>>> l7vsd_accesslog_rotate_max_backup_index = "10"
>>> l7vsd_accesslog_rotate_max_filesize = "2048M"
>>> l7vsd_network                    = "warn"
>>> l7vsd_network_qos                = "warn"
>>> l7vsd_network_bandwidth          = "warn"
>>> l7vsd_network_num_connection     = "warn"
>>> l7vsd_network_access             = "warn"
>>> l7vsd_mainthread                 = "warn"
>>> l7vsd_virtualservice             = "warn"
>>> l7vsd_virtualservice_thread      = "warn"
>>> l7vsd_session                    = "warn"
>>> l7vsd_session_thread             = "warn"
>>> l7vsd_realserver                 = "warn"
>>> l7vsd_sorryserver                = "warn"
>>> l7vsd_module                     = "warn"
>>> l7vsd_replication                = "warn"
>>> l7vsd_replication_sendthread     = "warn"
>>> l7vsd_parameter                  = "warn"
>>> l7vsd_logger                     = "warn"
>>> l7vsd_command                    = "warn"
>>> l7vsd_start_stop                 = "warn"
>>> l7vsd_system                     = "warn"
>>> l7vsd_system_memory              = "warn"
>>> l7vsd_system_endpoint            = "warn"
>>> l7vsd_system_signal              = "warn"
>>> l7vsd_system_environment         = "warn"
>>> l7vsd_snmpagent                  = "warn"
>>> l7vsd_protocol                   = "warn"
>>> l7vsd_schedule                   = "warn"
>>> l7vsadm_log_filename = "/var/log/l7vs/l7vsadm.log"
>>> l7vsadm_rotation = "size"
>>> l7vsadm_max_filesize = "2048M"
>>> l7vsadm_max_backup_index = "10"
>>> l7vsadm_parse                    = "warn"
>>> l7vsadm_operate                  = "warn"
>>> l7vsadm_config_result            = "warn"
>>> l7vsadm_common                   = "warn"
>>> l7vsadm_logger                   = "warn"
>>> l7vsadm_parameter                = "warn"
>>> l7vsadm_module                   = "warn"
>>> l7vsadm_protocol                 = "warn"
>>> l7vsadm_schedule                 = "warn"
>>> [l7vsadm]
>>> cmd_interval = 1
>>> cmd_count = 10
>>> con_interval = 1
>>> con_count = 1
>>> [l7vsd]
>>> maxfileno = 65535
>>> [virtualservice]
>>> session_thread_pool_size    = 32
>>> throughput_calc_interval    = 500
>>> [session]
>>> server_connect_timeout = 61
>>> ---------------------------------------------
>>>
>>> ・l7directord設定
>>> ---------------------------------------------
>>> virtual  = 10.83.13.46:80
>>>          real = 〓バックエンド01〓:80 masq 10
>>>          real = 〓バックエンド02〓:80 masq 10
>>>          real = 〓バックエンド03〓:80 masq 10
>>>          module      = sessionless --forwarded-for
>>>          scheduler   = lc
>>>          qosup       = 125M
>>>          qosdown     = 125M
>>>          checktype   = connect
>>>          service     = http
>>>          quiescent   = no
>>>          checkcount  = 2
>>>          session_thread_pool_size = 1800
>>>          maxconn     = 0
>>> ---------------------------------------------
>>> スレッドのプール数を稼ぐためにスタックトレースのサイズを
>>> l7vsdのプロセスのみデフォルトの10MBから3MBに変更しています。
>>>
>>>
>>>
>>
>> --
>> --------------------------------------------
>> ジグソー株式会社
>> 小林 年伸
>> E-mail:toshi****@jig-s*****
>> Tel:011-737-0240  Fax:011-737-0241
>> 〒060-0808
>> 北海道札幌市北区北8条西3丁目32番
>>
>> _______________________________________________
>> Ultramonkey-l7-users mailing list
>> Ultra****@lists*****
>> http://lists.osdn.me/mailman/listinfo/ultramonkey-l7-users


-- 
--------------------------------------------
ジグソー株式会社
小林 年伸
E-mail:toshi****@jig-s*****
Tel:011-737-0240  Fax:011-737-0241
〒060-0808
北海道札幌市北区北8条西3丁目32番

-------------- next part --------------
$BJ8;z%3!<%I;XDj$NL5$$E:IUJ8=q$rJ]4I$7$^$7$?(B...
$BL>A0(B: l7vs.cf.txt
Download 
-------------- next part --------------
##
## This is the l7directord configuration file.
## See `l7directord --help' for detailed information.
##

# = GLOBAL DIRECTIVES

# - Monitor Settings
checktimeout     = 5
negotiatetimeout = 5
checkinterval    = 10
retryinterval    = 5
checkcount       = 3

# - Logging
logfile          = /var/log/l7vs/l7directord.log
#logfile          = local0
#supervised

# - Real Server Operation
quiescent        = yes
#fallback         = 127.0.0.1:80

# - Monitor Configuration File
configinterval   = 10
autoreload       = yes
#callback         = 

# = VIRTUAL DIRECTIVES
# - A sample virtual section with a sorry server.
# - checkcount and quiescent settings are override the global settings.

## HTTP
virtual  = ***.***.***.***:**
        real = ***.***.***.***:** masq 10
        real = ***.***.***.***:** masq 10
        real = ***.***.***.***:** masq 10
#       sorryserver = ***.***.***.***:**
        module      = sessionless --forwarded-for
        scheduler   = lc
        qosup       = 125M
        qosdown     = 125M
        checktype   = connect
        service     = http
        quiescent   = no
        checkcount  = 2
        session_thread_pool_size = 1800
        maxconn     = 0

## SORRY
#virtual  = ***.***.***.***:**
#       real = ***.***.***.***:** masq 10
#       real = ***.***.***.***:** masq 10
#       real = ***.***.***.***:** masq 10
#       sorryserver = ***.***.***.***:**
#       module      = sessionless --forwarded-for
#       scheduler   = lc
#       qosup       = 125M
#       qosdown     = 125M
#       checktype   = connect
#       service     = http
#       quiescent   = no
#       checkcount  = 2
#       session_thread_pool_size = 32
#       maxconn     = 0

## SMTP
virtual = ***.***.***.***:**
        real = ***.***.***.***:** masq 10
        module      = sessionless
        scheduler   = lc
        qosup       = 125M
        qosdown     = 125M
        checktype   = connect
        service     = smtp
        quiescent   = no
        checkcount  = 2
        session_thread_pool_size = 50
        maxconn     = 0

## SMTPS
virtual = ***.***.***.***:**
        real = ***.***.***.***:** masq 10
        module      = sessionless
        scheduler   = lc
        qosup       = 125M
        qosdown     = 125M
        checktype   = connect
        service     = smtp
        quiescent   = no
        checkcount  = 2
        sslconfigfile = ******
        session_thread_pool_size = 50
        maxconn     = 0

## SMTP(STARTTLS)
virtual = ***.***.***.***:**
        real = ***.***.***.***:** masq 10
        module      = sessionless
        scheduler   = lc
        qosup       = 125M
        qosdown     = 125M
        checktype   = connect
        service     = smtp
        quiescent   = no
        checkcount  = 2
        session_thread_pool_size = 50
        maxconn     = 0

## POP3
virtual = ***.***.***.***:**
        real = ***.***.***.***:** masq 10
        module      = sessionless
        scheduler   = lc
        qosup       = 125M
        qosdown     = 125M
        checktype   = connect
        service     = pop
        quiescent   = no
        checkcount  = 2
        session_thread_pool_size = 200
        maxconn     = 0

## POP3S
virtual = ***.***.***.***:**
        real = ***.***.***.***:** masq 10
        module      = sessionless
        scheduler   = lc
        qosup       = 125M
        qosdown     = 125M
        checktype   = connect
        service     = pop
        quiescent   = no
        checkcount  = 2
        sslconfigfile = ******
        session_thread_pool_size = 100
        maxconn     = 0

## IMAP
virtual = ***.***.***.***:**
        real = ***.***.***.***:** masq 10
        module      = sessionless
        scheduler   = lc
        qosup       = 125M
        qosdown     = 125M
        checktype   = connect
        service     = imap
        quiescent   = no
        checkcount  = 2
        session_thread_pool_size = 500
        maxconn     = 0

## IMAPS
virtual = ***.***.***.***:**
        real = ***.***.***.***:** masq 10
        module      = sessionless
        scheduler   = lc
        qosup       = 125M
        qosdown     = 125M
        checktype   = connect
        service     = imap
        quiescent   = no
        checkcount  = 2
        sslconfigfile = ******
        session_thread_pool_size = 200
        maxconn     = 0
-------------- next part --------------
# ssl configuration file.
# /etc/l7vs/sslproxy/sslproxy.target.cf

[ssl]
# Global configuration.
timeout_sec = 30

# SSL configuration.
ca_dir = "*******"
ca_file = "*******"
cert_chain_dir = "*******"
cert_chain_file = "*******"
private_key_dir = "*******"
private_key_file = "*******"
private_key_filetype = "SSL_FILETYPE_PEM"
#private_key_filetype = "SSL_FILETYPE_ASN1"
private_key_passwd_dir = "*******"
private_key_passwd_file = "*******"
verify_options = "SSL_VERIFY_NONE"
#verify_options = "SSL_VERIFY_PEER"
#verify_options = "SSL_VERIFY_FAIL_IF_NO_PEER_CERT"
#verify_options = "SSL_VERIFY_CLIENT_ONCE"
verify_cert_depth = 9
#ssl_options = "SSL_OP_MICROSOFT_SESS_ID_BUG"
#ssl_options = "SSL_OP_NETSCAPE_CHALLENGE_BUG"
#ssl_options = "SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG"
#ssl_options = "SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG"
#ssl_options = "SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER"
#ssl_options = "SSL_OP_MSIE_SSLV2_RSA_PADDING"
#ssl_options = "SSL_OP_SSLEAY_080_CLIENT_DH_BUG"
#ssl_options = "SSL_OP_TLS_D5_BUG"
#ssl_options = "SSL_OP_TLS_BLOCK_PADDING_BUG"
#ssl_options = "SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS"
ssl_options = "SSL_OP_ALL"
#ssl_options = "SSL_OP_NO_QUERY_MTU"
#ssl_options = "SSL_OP_COOKIE_EXCHANGE"
#ssl_options = "SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION"
#ssl_options = "SSL_OP_SINGLE_ECDH_USE"
#ssl_options = "SSL_OP_SINGLE_DH_USE"
#ssl_options = "SSL_OP_EPHEMERAL_RSA"
#ssl_options = "SSL_OP_CIPHER_SERVER_PREFERENCE"
#ssl_options = "SSL_OP_TLS_ROLLBACK_BUG"
ssl_options = "SSL_OP_NO_SSLv2"
#ssl_options = "SSL_OP_NO_SSLv3"
#ssl_options = "SSL_OP_NO_TLSv1"
#ssl_options = "SSL_OP_PKCS1_CHECK_1"
#ssl_options = "SSL_OP_PKCS1_CHECK_2"
#ssl_options = "SSL_OP_NETSCAPE_CA_DN_BUG"
#ssl_options = "SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG"
#tmp_dh_dir = "/etc/l7vs/sslproxy/"
#tmp_dh_file = "dh512.pem"
cipher_list = "ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH"

# SSL session cache configuration.
session_cache = "on"
session_cache_size = 20480
session_cache_timeout = 300



Ultramonkey-l7-users メーリングリストの案内
Back to archive index