AzureでVM(4vcp、16 GBメモリ)のクラウドサーバをレンタルしており、とあるデータ分析をしています。サーバはubuntu 18.04LTSです。
プログラムを並列に7つ程稼働させているのですが、定期的に動作が一時的に固まってしまいます。ほおっておくと数分後~数十分後にまた動き出します。その間はプログラムは動いていなく停止しているようです。
原因を調べていたところ、使用しているとあるライブラリ(libcurlのラッパー)へアクセスをする場合にまれに一時的に固まってしまうようでした。
アクセス時にCPUで処理しきれなくなり固まってしまうのかと考えていましたが、AzureポータルのVMのCPU利用率を確認してみると20%以下で問題がなさそうでした。しかしながら、topコマンドを使ってみると13%*7プログラムで91%ありました。
そこで質問なのですが、
1.ライブラリ(libcurlのラッパー)へのアクセスでCPUの処理が追い付かず数分間停止することはありえるのでしょうか。
2.なぜ、AzureポータルのVMのCPU利用率とtopコマンドでこんなにも占有率が異なるのでしょうか。どちらが正しいのでしょうか。
3.Linuxで動作が一時停止してしまう理由はその他何か考えられるでしょうか。
参考までにtopコマンド後のスクリーンとAzureポータルのCPU利用率のスクショを次になります。宜しくお願い致します。
補足
一時停止されてしまう時間を計測してみたところ、約950秒間止まっているようでした。6時間の稼動で、938秒の一時停止が5回、944秒が5回、952秒が2回、947秒が1回ありました。
また、libcurlのラッパーはTyphoeusというのを利用しています。
回答1件
あなたの回答
tips
プレビュー