Armadilloフォーラム

aiot-modem-controldのCPU負荷が高い現象について

r_kawai

2022年7月8日 17時05分

お世話になっております。
topコマンドでCPU負荷を確認したところ、以下のようにaiot-modem-controldのCPU負荷が高い状態となっておりました。

top - 16:44:46 up 5 min,  2 users,  load average: 1.18, 0.80, 0.37
Tasks:  69 total,   1 running,  68 sleeping,   0 stopped,   0 zombie
%Cpu(s): 89.2 us,  6.2 sy,  0.0 ni,  4.6 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :    498.4 total,    423.5 free,     29.5 used,     45.4 buff/cache
MiB Swap:      0.0 total,      0.0 free,      0.0 used.    456.6 avail Mem
 
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
  260 root      20   0   10820   1144   1032 S  86.9   0.2   4:51.42 aiot-modem-cont
  159 root      20   0   21420   5940   5132 S   1.3   1.2   0:01.68 systemd-journal
  253 root      20   0   23700   2944   2184 S   0.7   0.6   0:00.46 rsyslogd
   46 root      20   0       0      0      0 S   0.3   0.0   0:00.78 mmcqd/0
  100 root      20   0       0      0      0 I   0.3   0.0   0:00.08 kworker/u2:2

しばらく様子を見ておりましたが、システム起動後1時間程度経過しても90%程度のCPU負荷となっており、常時高負荷になっているように見えています。
また、/etc/aiot-modem-control/startup.confはデフォルトの状態(LTE接続していない状態)、
LTE接続するように設定した状態の2パターンで確認しましたが、いずれもaiot-modem-controldが高負荷になる現象は発生しました。

aiot-modem-controldが高負荷になるのは意図した動作となりますでしょうか。
負荷を抑える方法があればご教示頂けませんでしょうか。

コメント

r_kawai

2022年7月11日 11時12分

追加の情報となります。
弊社では現在2台armadillo IoT A6を所持しており、1台では今回質問させて頂いているaiot-modem-controldの高負荷が発生し、もう1台では発生しておりません。

2台の差分はems31-utilsのバージョンのみとなります。
ems31-utilsのバージョンはそれぞれ以下となります。

(1)aiot-modem-controldの高負荷が発生する端末

root@armadillo:/home/atmark# dpkg -l |grep ems31-utils
ii  ems31-utils                   1.2.2                               armhf        Utilities for Thales EMS31 on Armadillo board
 
#top結果
top - 10:47:52 up 3 min,  2 users,  load average: 2.79, 1.75, 0.74
Tasks:  84 total,   2 running,  82 sleeping,   0 stopped,   0 zombie
%Cpu(s): 97.4 us,  1.6 sy,  1.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :    496.3 total,    362.6 free,     34.8 used,     98.9 buff/cache
MiB Swap:      0.0 total,      0.0 free,      0.0 used.    447.7 avail Mem
 
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
  259 root      20   0   10820   1104    992 S  95.4   0.2   2:34.34 aiot-modem-cont
  901 root      39  19    1632   1020    676 R   1.3   0.2   0:00.39 gzip
  919 root      20   0    5812   2620   2128 R   1.0   0.5   0:00.12 top
   46 root      20   0       0      0      0 I   0.3   0.0   0:00.11 kworker/u2:1
   51 root      20   0       0      0      0 S   0.3   0.0   0:02.19 mmcqd/0
  297 mosquit+  20   0    7616   4660   4020 S   0.3   0.9   0:00.28 mosquitto

(2)aiot-modem-controldの高負荷が発生しない端末

root@armadillo:~/armadillo_iot_a6_env# dpkg -l |grep ems31-utils
ii  ems31-utils                   1.2.0                               armhf        Utilities for Thales EMS31 on Armadillo board
 
#top結果
top - 10:40:34 up 23 min,  2 users,  load average: 1.16, 1.13, 0.98
Tasks:  83 total,   1 running,  82 sleeping,   0 stopped,   0 zombie
%Cpu(s): 33.3 us, 14.3 sy,  0.0 ni, 47.6 id,  0.0 wa,  0.0 hi,  4.8 si,  0.0 st
MiB Mem :    496.3 total,    385.6 free,     45.7 used,     65.0 buff/cache
MiB Swap:      0.0 total,      0.0 free,      0.0 used.    437.4 avail Mem
 
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
  591 root      20   0   39772  15260   6136 S  16.7   3.0   4:34.40 python3
 1994 root      20   0    7540   2512   2096 R  16.7   0.5   0:00.07 top
    7 root      20   0       0      0      0 S   5.6   0.0   0:08.38 ksoftirqd+
    1 root      20   0   12460   6540   5108 S   0.0   1.3   0:06.01 systemd
    2 root      20   0       0      0      0 S   0.0   0.0   0:00.01 kthreadd
    4 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/0+

(1)、(2)のそれぞれについてLTE接続はできております。

(1)では
https://armadillo.atmark-techno.com/forum/armadillo/11990
を参考に、ems31-utilsをアップデートしています。
アップデートする前のaiot-modem-controldの負荷については確認しておりません。
(1)のems31-utilsを1.2.0に戻して確認を試みましたが、インストール時に以下エラーが発生したため、(1)についてはems31-utils=1.2.0での確認はできておりません。

root@armadillo:/home/atmark# apt install ems31-utils=1.2.0
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
E: 'ems31-utils' のバージョン '1.2.0' が見つかりませんでした

(1)、(2)それぞれについて
journalctl -u aiot-modem-controld
で取得したログを添付いたします。

ems31-utilsのバージョンによってaiot-modem-controldのCPU負荷が高くなる現象は発生し得るでしょうか。
また、ems31-utilsの1.2.2を使用せず、1.2.0を使用した場合、何か問題はありますでしょうか。
お手数をおかけしますが、ご確認をお願いいたします。

ファイル ファイルの説明
(1)高負荷_aiot-modem-controld.log (1)aiot-modem-controldの高負荷が発生する端末のログ(ems31-utils 1.2.2)
(2)負荷正常_aiot-modem-controld.log (2)aiot-modem-controldの高負荷が発生しない端末のログ(ems31-utils 1.2.0)

at_syunya.ohshio

2022年7月12日 10時11分

大塩です。

> 追加の情報となります。
> 弊社では現在2台armadillo IoT A6を所持しており、1台では今回質問させて頂いているaiot-modem-controldの高負荷が発生し、もう1台では発生しておりません。
>
> 2台の差分はems31-utilsのバージョンのみとなります。
> ems31-utilsのバージョンはそれぞれ以下となります。
>
> (1)aiot-modem-controldの高負荷が発生する端末
>

> root@armadillo:/home/atmark# dpkg -l |grep ems31-utils
> ii  ems31-utils                   1.2.2                               armhf        Utilities for Thales EMS31 on Armadillo board
> 
> #top結果
> top - 10:47:52 up 3 min,  2 users,  load average: 2.79, 1.75, 0.74
> Tasks:  84 total,   2 running,  82 sleeping,   0 stopped,   0 zombie
> %Cpu(s): 97.4 us,  1.6 sy,  1.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
> MiB Mem :    496.3 total,    362.6 free,     34.8 used,     98.9 buff/cache
> MiB Swap:      0.0 total,      0.0 free,      0.0 used.    447.7 avail Mem
> 
>   PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
>   259 root      20   0   10820   1104    992 S  95.4   0.2   2:34.34 aiot-modem-cont
>   901 root      39  19    1632   1020    676 R   1.3   0.2   0:00.39 gzip
>   919 root      20   0    5812   2620   2128 R   1.0   0.5   0:00.12 top
>    46 root      20   0       0      0      0 I   0.3   0.0   0:00.11 kworker/u2:1
>    51 root      20   0       0      0      0 S   0.3   0.0   0:02.19 mmcqd/0
>   297 mosquit+  20   0    7616   4660   4020 S   0.3   0.9   0:00.28 mosquitto
> 

>
> (2)aiot-modem-controldの高負荷が発生しない端末
>

> root@armadillo:~/armadillo_iot_a6_env# dpkg -l |grep ems31-utils
> ii  ems31-utils                   1.2.0                               armhf        Utilities for Thales EMS31 on Armadillo board
> 
> #top結果
> top - 10:40:34 up 23 min,  2 users,  load average: 1.16, 1.13, 0.98
> Tasks:  83 total,   1 running,  82 sleeping,   0 stopped,   0 zombie
> %Cpu(s): 33.3 us, 14.3 sy,  0.0 ni, 47.6 id,  0.0 wa,  0.0 hi,  4.8 si,  0.0 st
> MiB Mem :    496.3 total,    385.6 free,     45.7 used,     65.0 buff/cache
> MiB Swap:      0.0 total,      0.0 free,      0.0 used.    437.4 avail Mem
> 
>   PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
>   591 root      20   0   39772  15260   6136 S  16.7   3.0   4:34.40 python3
>  1994 root      20   0    7540   2512   2096 R  16.7   0.5   0:00.07 top
>     7 root      20   0       0      0      0 S   5.6   0.0   0:08.38 ksoftirqd+
>     1 root      20   0   12460   6540   5108 S   0.0   1.3   0:06.01 systemd
>     2 root      20   0       0      0      0 S   0.0   0.0   0:00.01 kthreadd
>     4 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/0+
> 

>
>
> (1)、(2)のそれぞれについてLTE接続はできております。
>
> (1)では
> https://armadillo.atmark-techno.com/forum/armadillo/11990
> を参考に、ems31-utilsをアップデートしています。
> アップデートする前のaiot-modem-controldの負荷については確認しておりません。
> (1)のems31-utilsを1.2.0に戻して確認を試みましたが、インストール時に以下エラーが発生したため、(1)についてはems31-utils=1.2.0での確認はできておりません。
>

> root@armadillo:/home/atmark# apt install ems31-utils=1.2.0
> パッケージリストを読み込んでいます... 完了
> 依存関係ツリーを作成しています
> 状態情報を読み取っています... 完了
> E: 'ems31-utils' のバージョン '1.2.0' が見つかりませんでした
> 

>
>
> (1)、(2)それぞれについて
> journalctl -u aiot-modem-controld
> で取得したログを添付いたします。
>
>
>
>
> ems31-utilsのバージョンによってaiot-modem-controldのCPU負荷が高くなる現象は発生し得るでしょうか。
> また、ems31-utilsの1.2.2を使用せず、1.2.0を使用した場合、何か問題はありますでしょうか。
> お手数をおかけしますが、ご確認をお願いいたします。

ご報告とそれぞれの情報ありがとうございます。
こちらでも確認し、CPU使用率が高いことを確認しました。
この問題について修正致します。
ご迷惑をおかけして申し訳ありません。

r_kawai

2022年7月13日 9時29分

> ご報告とそれぞれの情報ありがとうございます。
> こちらでも確認し、CPU使用率が高いことを確認しました。
> この問題について修正致します。
> ご迷惑をおかけして申し訳ありません。

ご確認いただきありがとうございます。
修正についてよろしくお願いいたします。
ひとまずは現象の発生しないems31-utils 1.2.0を使用する方向で進めたいと思います。

at_syunya.ohshio

2022年7月27日 16時31分

大塩です。

2022年7月 製品アップデートにて、この現象についての修正を行いました。
apt install コマンドにて ems31-utils の最新バージョンをインストールし、動作確認をしてみてください。

詳細は以下製品アップデートニュースをご確認ください。
https://armadillo.atmark-techno.com/news/20220727/software-update-aiota6

以上です。

r_kawai

2022年7月29日 13時10分

> 大塩です。
>
> 2022年7月 製品アップデートにて、この現象についての修正を行いました。
> apt install コマンドにて ems31-utils の最新バージョンをインストールし、動作確認をしてみてください。
>
> 詳細は以下製品アップデートニュースをご確認ください。
> https://armadillo.atmark-techno.com/news/20220727/software-update-aiota6
>
> 以上です。

ご対応いただきありがとうございます。
ems31-utilsをバージョン1.2.3にアップデートすることで現象が改善することを確認いたしました。