質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CPU

CPUは、コンピュータの中心となる処理装置(プロセッサ)で中央処理装置とも呼ばれています。プログラム演算や数値計算、その他の演算ユニットをコントロール。スマホやPCによって内蔵されているCPUは異なりますが、処理性能が早いほど良いとされています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Azure

Azureは、マイクロソフトのクラウド プラットフォームで、旧称は Windows Azureです。PaaSとIaaSを組み合わせることで、 コンピューティング・ストレージ・データ・ネットワーキング・アプリケーションなど多くの機能を持ちます。

Q&A

解決済

1回答

1337閲覧

Linuxで動作が固まってしまう。topコマンドのCPU占有率とAzureポータルのCPU利用率の違い

kzd847686

総合スコア53

CPU

CPUは、コンピュータの中心となる処理装置(プロセッサ)で中央処理装置とも呼ばれています。プログラム演算や数値計算、その他の演算ユニットをコントロール。スマホやPCによって内蔵されているCPUは異なりますが、処理性能が早いほど良いとされています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Azure

Azureは、マイクロソフトのクラウド プラットフォームで、旧称は Windows Azureです。PaaSとIaaSを組み合わせることで、 コンピューティング・ストレージ・データ・ネットワーキング・アプリケーションなど多くの機能を持ちます。

0グッド

1クリップ

投稿2019/04/15 13:54

編集2019/04/15 22:58

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というのを利用しています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kabao

2019/04/15 14:28

2.なぜ、AzureポータルのVMのCPU利用率とtopコマンドでこんなにも占有率が異なるのでしょうか。どちらが正しいのでしょうか。 については、Azureポータルのグラフは、1分とか5分平均になっていませんか? それに対してtopコマンドは1秒とかになっていると思います。topでは短時間の高騰をとらえられるのに対して、Azureポータルの方では平均化されてしまうので値として低くなってしまうのではないかと。
kzd847686

2019/04/15 15:17

ご回答ありがとうございます。Azureポータルのグラフは1分間隔でしたので1分平均と思われます。 topコマンドは常時1つのプログラムで13%前後×7個の90%程でした。
guest

回答1

0

ベストアンサー

Azureを利用したことがないので、あくまで物理やAWSと比較した時の観点で参考程度に留めていただければと思います。

1)libcurlでサーバのファイルに書き込んだりしていないでしょうか。
もしそうであれば、ioが足を引っ張っているとかはないでしょうか。
添付していただいている画像からだとiowaitは0となっていますが、
サーバがビタッと止まる時はio待ちというパターンもあります。

2)4cpu8スレッドなのでしょうか?
であれば、13%の使用率のCPUが8個なので単純足し算ではなく、
ざっとですが(13*8)8になるので、トータルのCPU利用率は13〜20%程度なので、
コンソール(Azureポータル?)から見る利用率とそこまで大きな差はない様に思われます。

3)詳細な役割がわからないマシンなので絞るのは難しいですが1)でも書きましたが、
ioも可能性として上がってくると思います。
AWSではディスクへのアクセスを事前に予約して使い切ってしまうと、極端に遅くなったりという経験があります。Azureでも同様のものがあるのかなと推測したりしています。

明確な回答やアドバイスでなくて申し訳ありませんが、何かの参考になれば幸いです。

投稿2019/04/15 14:36

編集2019/04/15 14:37
Mcgregor

総合スコア31

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問