
systemdでリソース管理がどのように機能するかを調べたいと思います。
私がどこにいるのか、それがどのように到達したのかを知るには、まず自分の状況を説明する必要があります。
mysql-dbをubuntu 14.04から16.04に移行した後、systemdを処理する必要があります。今回が初めてではなく、今までも大丈夫です。 16.04でmysqlの起動中に次のログエントリが見つかりました。
Changed limits: max_open_files: 1024 (requested 5000)
mysql変数max_open_files
(max_open_files
現在の設定では設定されていません!)が動的であり、4つのシナリオによって異なります(参照:https://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_open_files_limit)私が見るにはシーンがないのが明らかです。 4を使用します。
ulimit
だから私のポイントは:14.04と16.04のmysql-configは同じですが、systemdのリソース管理動作が14.04(&使用)と異なるようです。/etc/security.d/limits.conf
mysqlの使用シナリオ4、「オペレーティングシステムの制限が無限の場合」は本当です。 ..なぜオペレーティングシステムの限界は無限ですか?
私が悩んでいるもう一つの問題:max_open_files
mysql-configで「1000」と定義すると、/proc/[myslq-pid]/limits
ソフト制限が1000に設定され、ハード制限が4096に設定されていることがわかります。
質問1:上記の条件4が「オペレーティングシステムの制限が無限大の場合」に適用されるため、制限が4096の理由は...
max_open_files
1から4096までの値に設定できます。これは制限を定義します。これは予想される動作です。ただし、4096より高く設定すると、Softlimit = 1024とhardlimit = 4096に置き換えられます。上記の条件4が再び満たされるため、この動作はわかりませんif operating system limit is Infinity
。
これは私の質問2:この「デフォルト」はどこから来たのですか?制限を4096より高く設定できないのはなぜですか?
ノート: LimitNOFILE=number
systemd の mysql-service-unit に一度定義しておくと「number」がソフトリミットとハードリミットに設定され、4096 より大きい値を定義できました。もう一度確認して確認してください/proc/[myslq-pid]/limits
。
私はsystemdに関するドキュメントを見ましたが、何らかの理由で「デフォルト」という点で唯一言及されているのは、デフォルトでは設定されていない定義可能なファイル/etc/systemd/system.conf
です。だからそこにありますか?/etc/systemd/user.conf
DefaultLimitNOFILE=
default Default
私はこの動作を本当に支持しません。誰かがこの問題を解決する方法についてのヒントを提供できることを願っています。
私はあなたが持つことができるどんな提案やヒントでも開いています!
私はこれを説明するためのより多くの文書を読んでみたいです。しかし、正しい文書が見つかりませんでした...私が見つけたすべてが私に戻ってきます。systemd.resourcecontrol、制限設定、システムランチャーそしてsystemd/ControlGroup インターフェイスこれはここで終わるよりも私には役に立ちません:)