web-dev-qa-db-ja.com

CPUを100%使用するアカウントデーモンの処理

Ubuntu 16.04を実行しているサーバーがいくつかあり、突然accounts-daemon CPUを100%使用するプロセス。

3週間前に初めて発生したとき、私は/var/log/wtmpを再作成して、問題をすぐに解決しました。

それが私が出会った最初の解決策でした、別の解決策はこれらのwtmpログを無効にすることでしたproftpd.conf

それを行うことに伴うリスクはありますか?問題は解決しますか?

4
Syrupsystem

それは私の問題を解決しますか?

それはありそうもない。 2012年に戻って、Chris Siebenmannは、システム全体のデスクトップバスサーバーであるAccountsサービスが、非常に非効率的でかなり危険な方法で動作していることを確認しました。強調表示されたアーキテクチャの問題のいくつかは、今日まで残っているようです。ログインデータベースやアカウントデータベースなど、さまざまなデータベースを処理する方法には、まだ全テーブルスキャンが含まれます。そして、ユーザー提供のシェルスクリプトを解析するスーパーユーザープログラムを備えた Debian固有の追加 はまだ残っています。

パフォーマンスの問題を改善しようとする1つのパッチが、Unixバージョン7アカウントデータベースと付随するAPIで構築されたシャドウパスワードシステムを想定し、アカウントデータベースをソートされていないコロンで区切られたものから適切に切り替えた最近のBSDを破ったことが指摘された1 -line-per-recordファイルからインデックス付きのBerkeley DBファイルへ、プログラムの作者の1人からのFreedesktopバグトラッカーでの応答は、BSDはおそらく古いシステムに戻る必要があるというものでした。テーブルアクセスの非効率性が問題の一部であるという点を完全に欠いています。

参考文献

4
JdeBP

16.04 Ubuntuでaccounts-daemonのCPUをほぼ100%使用すると、同じ問題が発生していました。

要するに、根本的な原因はsystemdによって継続的に(つまり、1分に数回)再開されたserial console agetty-sでした。

(私はサムの主な質問に正確に答えていないことを認めます-つまりwtmpを完全に無効にします-しかし、問題のある他の人々はこのページを見つける可能性があります-私がしたように)

==

好奇心が強い人のための詳細:

  • strace on accounts-daemonは、継続的に/ var/log/wtmpにアクセスしていることを明らかにしました。残念ながら、lastからは何も表示されませんでしたが、別のユーティリティtmpdumpは、ttyS *シリアルコンソールで多くの失敗したagetty試行を示しました。

[6] [30697] [tyS2] [LOGIN] [ttyS2] [] [0.0.0.0] [Sun Dec 30 07:19:34 2018 CET]

[6] [30698] [tyS1] [LOGIN] [ttyS1] [] [0.0.0.0] [Sun Dec 30 07:19:34 2018 CET]

[8] [30698] [tyS1] [] [ttyS1] [] [0.0.0.0] [Sun Dec 30 07:19:44 2018 CET]

[8] [30697] [tyS2] [] [ttyS2] [] [0.0.0.0] [Sun Dec 30 07:19:44 2018 CET]

[5] [30707] [tyS2] [] [ttyS2] [] [0.0.0.0] [Sun Dec 30 07:19:44 2018 CET]

[6] [30707] [tyS2] [LOGIN] [ttyS2] [] [0.0.0.0] [Sun Dec 30 07:19:44 2018 CET]

[8] [30707] [tyS2] [] [ttyS2] [] [0.0.0.0] [Sun Dec 30 07:19:48 2018 CET]

  • 実際、何らかの形でアクティブ化されたシリアルコンソールがいくつかありました(systemctl | grep ttyS。* service)。これは"systemctl disable [email protected]"(Iこれらのシリアルagetty-sがなぜ、どのようにアクティブ化されたかはわかりませんが、これは非常に古いシステムです。)

  • wtmpはすぐに成長を停止し、accounts-daemonはtop出力から消えました。私は、accounts-daemonが新しいwtmpレコードに対してのみアクティブになると思います。そのため、それが非効率的であっても、現在はめったに実行されません。

乾杯:Arpad

4
ArpadB