Armadilloフォーラム

440にて『net.agent』というプロセスが自動起動する

f-wada

2021年9月3日 17時05分

お世話になります。
Armadillo-440を用いてシステムを構築しているのですが、
2週間程度の連続稼働を行うと、使用メモリが増加していることを確認したため
top コマンドにて実行中のプロセスを確認することにしました。

結果、見覚えのない 『net.agent』というプロセスが動作していることが分かりました。
このプロセスは時間経過に応じてメモリ使用量やプロセス数が増加するようです。
電源起動時はプロセスが2つですが、連続稼働すると以下のように4つに増えています。
(./userapp はこちらで作成したソフト)

[root@armadillo420-0 (ttymxc1) ~]# top
 
Mem: 92112K used, 31076K free, 0K shrd, 4294967295K buff, 5K cached
CPU: 38.5% usr 55.9% sys  0.0% nic  5.5% idle  0.0% io  0.0% irq  0.0% sirq
Load average: 3.70 3.72 3.72 3/53 11961
  PID  PPID USER     STAT   VSZ %VSZ CPU %CPU COMMAND
 1509     1 root     S    29340 23.7   0 35.7 ./userapp
11873 10976 root     R     3296  2.6   0  1.3 top
11860     2 root     SW       0  0.0   0  0.7 [kworker/0:2]
 1217     1 root     S    16348 13.2   0  0.3 {net.agent} /bin/sh -e /lib/udev/net.agent
    7     2 root     SW       0  0.0   0  0.3 [rcu_preempt]
10953  1445 root     S     3376  2.7   0  0.2 telnetd -l /bin/login
 1288     1 root     S    16476 13.3   0  0.0 {net.agent} /bin/sh -e /lib/udev/net.agent
11958  1288 root     R    16476 13.3   0  0.0 {net.agent} /bin/sh -e /lib/udev/net.agent
11960  1217 root     R    16348 13.2   0  0.0 {net.agent} /bin/sh -e /lib/udev/net.agent
 1462     1 www-data S     4816  3.8   0  0.0 lighttpd -f /etc/lighttpd.conf
 1445     1 root     S     3368  2.7   0  0.0 inetd
10976 10955 root     S     3296  2.6   0  0.0 ash
10955 10953 guest    S     3296  2.6   0  0.0 -ash
...(略)

どうやら、この『net.agent』は
Linux 3.14, kernel: V2.08,userland: v2.04 の構成で自動で起動するようになっているようです。
このプロセスがどういったものなのか教えていただけますでしょうか。

自動起動の設定は /lib/udev/rules.d/80-networking.rules に記載されているようです。

以上、よろしくお願いします。

コメント

at_shinya.koga

2021年9月4日 8時30分

アットマークテクノの古賀です。

net.agent については、以前に 800EVA に関して話題に出たことがありました:
 https://armadillo.atmark-techno.com/forum/armadillo/2793

# 上のスレッドの、最後から二番めの質問と、最後のコメントです。

一点確認ですが、Armadillo-440 でお使いの Linux 3.14 対応のユーザーランドは、Atmark Dist と Debian GNU/Linux 7 のどちらでしょうか?
 https://armadillo.atmark-techno.com/resources/software/armadillo-440/us…

f-wadaさん:
>Armadillo-440を用いてシステムを構築しているのですが、
>2週間程度の連続稼働を行うと、使用メモリが増加していることを確認したため
>top コマンドにて実行中のプロセスを確認することにしました。
>
>結果、見覚えのない 『net.agent』というプロセスが動作していることが分かりました。
>このプロセスは時間経過に応じてメモリ使用量やプロセス数が増加するようです。
>電源起動時はプロセスが2つですが、連続稼働すると以下のように4つに増えています。
>(./userapp はこちらで作成したソフト)

[root@armadillo420-0 (ttymxc1) ~]# top
 
Mem: 92112K used, 31076K free, 0K shrd, 4294967295K buff, 5K cached
CPU: 38.5% usr 55.9% sys  0.0% nic  5.5% idle  0.0% io  0.0% irq  0.0% sirq
Load average: 3.70 3.72 3.72 3/53 11961
  PID  PPID USER     STAT   VSZ %VSZ CPU %CPU COMMAND
 1509     1 root     S    29340 23.7   0 35.7 ./userapp
11873 10976 root     R     3296  2.6   0  1.3 top
11860     2 root     SW       0  0.0   0  0.7 [kworker/0:2]
 1217     1 root     S    16348 13.2   0  0.3 {net.agent} /bin/sh -e /lib/udev/net.agent
    7     2 root     SW       0  0.0   0  0.3 [rcu_preempt]
10953  1445 root     S     3376  2.7   0  0.2 telnetd -l /bin/login
 1288     1 root     S    16476 13.3   0  0.0 {net.agent} /bin/sh -e /lib/udev/net.agent
11958  1288 root     R    16476 13.3   0  0.0 {net.agent} /bin/sh -e /lib/udev/net.agent
11960  1217 root     R    16348 13.2   0  0.0 {net.agent} /bin/sh -e /lib/udev/net.agent
 1462     1 www-data S     4816  3.8   0  0.0 lighttpd -f /etc/lighttpd.conf
 1445     1 root     S     3368  2.7   0  0.0 inetd
10976 10955 root     S     3296  2.6   0  0.0 ash
10955 10953 guest    S     3296  2.6   0  0.0 -ash
...(略)

>
>どうやら、この『net.agent』は
>Linux 3.14, kernel: V2.08,userland: v2.04 の構成で自動で起動するようになっているようです。
>このプロセスがどういったものなのか教えていただけますでしょうか。
>
>自動起動の設定は /lib/udev/rules.d/80-networking.rules に記載されているようです。

net.agent は シェルスクリプトですので、/lib/udev/net.agent をご覧になって頂ければ、処理内容が分かります。
net.agent の役割ですが、ネットワークデバイスのホットプラグ動作のようです。たとえば、このページが参考になるかと思います:
 http://yochecks.blogspot.com/2007/04/debian.html

このページに net.agent の内容が引用されていますが、net_ifup() がループバックインタフェース(lo)に対して呼び出す wait_for_interface() では、指定されたネットワークインタフェースが up するまで待ち続けます。そのため、/etc/network/interfaces で lo に対する設定がないと、net.agent が大量に起動してしまうようです:
 https://serverfault.com/a/400817

しかし、 冒頭で挙げた、Armadilo-440 の Linux 3.14 用の Debian GNU/Linux 7 の /etc/network/interfaces には、

auto lo eth0
iface lo inet looopback
iface eth0 inet dhcp

の行がありますので、このユーザーランドを変更なしでお使いなのであれば、net.agent が lo を永久待ちして終了しない、という状況にはならないと思います。確認ですが、お手元の /etc/network/interfaces の内容は、どうなっているでしょうか?

古賀様

返信ありがとうございます。

>一点確認ですが、Armadillo-440 でお使いの Linux 3.14 対応のユーザーランドは、Atmark Dist と Debian GNU/Linux 7 のどちらでしょうか?
atmark-dist v1.55.1 になります。

net.agentに関する情報、ありがとうございます。
実行ファイルだと思いこんでいましたが、シェルスクリプトだったのですね。

/etc/network/interfaces を確認しましたが、
こちらで変更しており、 lo に対する設定が消えていました。
今回のメモリ増加についてはこの内容が影響している可能性が高そうです。
interfaces ファイルを編集して、連続稼働させて状況を確認したいと思います。

# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
 
auto eth0
iface eth0 inet static
address 192.168.10.90
netmask 255.255.0.0
gateway 0.0.0.0

追加で質問なのですが、
今回は net.agent の仕様上、loの記載が必須のようですが
こういった状況でなくても、loに関する設定は必ず行うべきなのでしょうか。

また、紹介いただいたwebページによると
/etc/init.d/udev を実行した際に eth0 が起動するようになっているため
/etc/network/interfaces にて "auto eth0" の記載は削除するべきでしょうか。

f-wadaさん:
>返信ありがとうございます。
>
>>一点確認ですが、Armadillo-440 でお使いの Linux 3.14 対応のユーザーランドは、Atmark Dist と Debian GNU/Linux 7 のどちらでしょうか?
>
>atmark-dist v1.55.1 になります。

了解しました。AtmarkDist をお使いなのですね。

>net.agentに関する情報、ありがとうございます。
>実行ファイルだと思いこんでいましたが、シェルスクリプトだったのですね。
>
>/etc/network/interfaces を確認しましたが、
>こちらで変更しており、 lo に対する設定が消えていました。
>今回のメモリ増加についてはこの内容が影響している可能性が高そうです。
>interfaces ファイルを編集して、連続稼働させて状況を確認したいと思います。

これについても、了解しました。

>追加で質問なのですが、
>今回は net.agent の仕様上、loの記載が必須のようですが
>こういった状況でなくても、loに関する設定は必ず行うべきなのでしょうか。

lo を使う必要が生じた時点で ifup すればよいので、必須ではないんじゃないかと思います。

>また、紹介いただいたwebページによると
>/etc/init.d/udev を実行した際に eth0 が起動するようになっているため
>/etc/network/interfaces にて "auto eth0" の記載は削除するべきでしょうか。

eth0、つまり LAN インタフェースを動作させない構成で稼働させていらっしゃるのであれば、eth0 を auto 指定する必要は、ないんじゃないかと思います。

以上、断言する回答ではなく恐縮ですが、現状できるコメントです。

古賀様

返信ありがとうございます。
interfacesファイルにlo の設定を行った後に試してみましたが、
net.agent のプロセスが残ることなく正常動作することを確認しました。

質問事項への回答もありがとうございます。
構築しているシステム内容に応じて、適切に設定したいと思います。l