映像配信 さくら障害報告

さくらのクラウドに立てたサーバに映像配信

日本語 3Mbps,800Kbps,300Kbps
英語 3Mbps,800Kbps,300Kbps
北京語 3Mbps,800Kbps,300Kbps

合計 約12Mbpsの映像配信をしていた。インターネットルータで出ている速度は上り130Mbps程度だった。

インターネット速度はいつもwiled speed で計測します。

日本語だけエンコードしている間は問題が出なかったが、英語・北京語も合わせてエンコードを始めたところ、クライアント側で時々映像が止まる事が起こった。

ログを確認したらやっぱりボロボロ止まってる。deleteStreamって事は映像が届かなくて切断したって事。ルータから、sakuraのクラウドへのpingが20ms程度で安定している時は特にこの現象は起きない。60ms移行が出てきた時は要注意。

ルータ兼 nginxサーバのログ

2017/04/28 17:39:56 [info] 1626#0: *37 disconnect, client: sakura.hanako.jp/multi_jp/stream_hi?user=live&pass=suess, server: ngx-relay
2017/04/28 17:39:56 [info] 1626#0: *37 deleteStream, client: sakura.hanako.jp/multi_jp/stream_hi?user=live&pass=suess, server: ngx-relay
2017/04/28 17:39:59 [info] 1626#0: *3 relay: create push name='stream_hi' app='' playpath='' url='sakura.hanako.jp/multi_jp/stream_hi?user=live&pass=suess', client: 127.0.0.1, server: 0.0.0.0:1935
2017/04/28 17:40:58 [info] 1626#0: *44 recv() failed (104: Connection reset by peer), client: sakura.hanako.jp/multi_jp/stream_hi?user=live&pass=suess, server: ngx-relay
2017/04/28 17:40:58 [info] 1626#0: *44 disconnect, client: sakura.hanako.jp/multi_jp/stream_hi?user=live&pass=suess, server: ngx-relay
2017/04/28 17:40:58 [info] 1626#0: *44 deleteStream, client: sakura.hanako.jp/multi_jp/stream_hi?user=live&pass=suess, server: ngx-relay
2017/04/28 17:41:01 [info] 1626#0: *3 relay: create push name='stream_hi' app='' playpath='' url='sakura.hanako.jp/multi_jp/stream_hi?user=live&pass=suess', client: 127.0.0.1, server: 0.0.0.0:1935
2017/04/28 17:46:34 [info] 1626#0: *45 recv() failed (104: Connection reset by peer), client: sakura.hanako.jp/multi_jp/stream_hi?user=live&pass=suess, server: ngx-relay
2017/04/28 17:46:34 [info] 1626#0: *45 disconnect, client: sakura.hanako.jp/multi_jp/stream_hi?user=live&pass=suess, server: ngx-relay
2017/04/28 17:46:34 [info] 1626#0: *45 deleteStream, client: sakura.hanako.jp/multi_jp/stream_hi?user=live&pass=suess, server: ngx-relay
2017/04/28 17:46:37 [info] 1626#0: *3 relay: create push name='stream_hi' app='' playpath='' url='sakura.hanako.jp/multi_jp/stream_hi?user=live&pass=suess', client: 127.0.0.1, server: 0.0.0.0:1935
2017/04/28 17:50:07 [info] 1626#0: *46 disconnect, client: sakura.hanako.jp/multi_jp/stream_hi?user=live&pass=suess, server: ngx-relay
2017/04/28 17:50:07 [info] 1626#0: *46 deleteStream, client: sakura.hanako.jp/multi_jp/stream_hi?user=live&pass=suess, server: ngx-relay
2017/04/28 17:50:10 [info] 1626#0: *3 relay: create push name='stream_hi' app='' playpath='' url='sakura.hanako.jp/multi_jp/stream_hi?user=live&pass=suess', client: 127.0.0.1, server: 0.0.0.0:1935
2017/04/28 17:58:22 [info] 1626#0: *31 recv() failed (104: Connection reset by peer), client: sakura.hanako.jp/multi_jp/stream_lw?user=live&pass=suess, server: ngx-relay
2017/04/28 17:58:22 [info] 1626#0: *31 disconnect, client: sakura.hanako.jp/multi_jp/stream_lw?user=live&pass=suess, server: ngx-relay
2017/04/28 17:58:22 [info] 1626#0: *31 deleteStream, client: sakura.hanako.jp/multi_jp/stream_lw?user=live&pass=suess, server: ngx-relay
2017/04/28 17:58:25 [info] 1626#0: *7 relay: create push name='stream_lw' app='' playpath='' url='sakura.hanako.jp/multi_jp/stream_lw?user=live&pass=suess', client: 127.0.0.1, server: 0.0.0.0:1935

この時のPingログ かなりばらつきが

1408 bytes from *.*.*.*: icmp_seq=933 ttl=56 time=382 ms
1408 bytes from *.*.*.*: icmp_seq=934 ttl=56 time=19.3 ms
1408 bytes from *.*.*.*: icmp_seq=935 ttl=56 time=27.0 ms
1408 bytes from *.*.*.*: icmp_seq=936 ttl=56 time=31.2 ms
1408 bytes from *.*.*.*: icmp_seq=937 ttl=56 time=30.1 ms
1408 bytes from *.*.*.*: icmp_seq=938 ttl=56 time=12.5 ms
1408 bytes from *.*.*.*: icmp_seq=939 ttl=56 time=11.4 ms
1408 bytes from *.*.*.*: icmp_seq=940 ttl=56 time=22.2 ms
1408 bytes from *.*.*.*: icmp_seq=941 ttl=56 time=15.6 ms
1408 bytes from *.*.*.*: icmp_seq=942 ttl=56 time=702 ms

同じ時間帯のCloudn(OCN)は安定 17ms 〜 18msで返ってきていた。

先日までずっと調子よかったのに、今日だけおかしい。先日との違いはサーバを停止させていた事。1週間ほど停止させ、本日起動しなおした。これが原因か?仮定としてはクラウド上のサーバは起動ごとにつかむネットワークが違うのではないか?

例えば、ヘビーユーザ(ヘビーなサービスを提供している)VMと同じセグメントに所属してしまうとそのヘビーユーザにひきずられて、インタネット速度が出ないとか。

試しにVMへ向けてTracerouteし、一度VMを停止させ、再度起動後Tracerouteし直すとどうなるか確認してみると、通信経路が変わった。

いや、だけどこれもあてにならない。停止させなくても時間と共に通信経路は変わるらしい。

traceroute to sakura.hanako.jp (*.*.*.*), 30 hops max, 60 byte packets
 1  111.89.255.99  4.909 ms  4.894 ms  4.889 ms
 2  210.153.251.197  5.001 ms  5.086 ms  5.111 ms
 3  210.165.249.49  12.676 ms  12.844 ms  13.106 ms
 4  210.165.241.246  11.500 ms  11.767 ms  11.968 ms
 5  210.165.241.165  10.405 ms  10.487 ms  10.632 ms
 6  210.150.215.178  10.512 ms  9.947 ms  9.936 ms
 7  157.17.130.210  10.246 ms 157.17.130.214  10.878 ms 157.17.130.54  10.794 ms
 8  157.17.130.206  56.602 ms  51.258 ms  51.162 ms
 9  157.17.136.202  10.699 ms  10.478 ms 157.17.136.194  11.073 ms
10  * * *
11  *.*.*.* 12.609 ms  13.572 ms  12.693 ms
traceroute to sakura.hanako.jp (*.*.*.*), 30 hops max, 60 byte packets
 1  111.89.255.99  5.006 ms  4.997 ms  4.992 ms
 2  210.153.251.197  5.117 ms  5.138 ms  5.244 ms
 3  210.165.249.49  12.673 ms  12.966 ms  13.219 ms
 4  210.165.241.246  10.314 ms  10.595 ms  10.801 ms
 5  210.165.241.165  12.054 ms  12.259 ms  12.388 ms
 6  210.150.215.178  10.619 ms  10.221 ms  10.306 ms
 7  157.17.130.54  10.338 ms 157.17.130.50  10.538 ms  10.694 ms
 8  157.17.130.94  10.786 ms 157.17.130.206  30.133 ms  29.851 ms
 9  157.17.136.202  10.798 ms  10.523 ms  10.882 ms
10  * * *
11  *.*.*.*  10.412 ms  10.803 ms  10.721 ms

停止・起動後経路が変わったのでこれかぁと思ったのだけど、ずっと起動していても勝手に経路はかわっていたので、これが問題ではないみたいです。

午後9時過ぎてpingを打ちなおしてみたところ、

64 bytes from *.*.*.*: icmp_seq=93 ttl=56 time=10.9 ms
64 bytes from *.*.*.*: icmp_seq=94 ttl=56 time=10.8 ms
64 bytes from *.*.*.*: icmp_seq=95 ttl=56 time=10.4 ms
64 bytes from *.*.*.*: icmp_seq=96 ttl=56 time=10.4 ms
64 bytes from *.*.*.*: icmp_seq=97 ttl=56 time=10.4 ms
64 bytes from *.*.*.*: icmp_seq=98 ttl=56 time=10.6 ms
64 bytes from *.*.*.*: icmp_seq=99 ttl=56 time=10.2 ms
64 bytes from *.*.*.*: icmp_seq=100 ttl=56 time=10.3 ms

快調。映像が止まる事もなくなった。このping の速度ゆらぎが、映像配信がうまくいくかの指標になるのが良く分かった。

ping速度のアラートを出せるようなプログラムでも作ろうかなぁ。

関連コンテンツ