現在のカーネルパラメータを表示しますか?

現在のカーネルパラメータを表示しますか?

システムログに変更が表示されますkernel.perf_event_max_sample_rate

数分ごとにこの変数を記録するクイックスクリプトを書くことができるかどうか疑問に思います。現在:

sysctl -a | grep kernel.perf_event_max_sample_rate

マニュアルページ sysctl には次のように記載されています。

sysctl- 実行時のカーネルパラメータの設定

これは、カーネルの起動時にスクリプトがパラメータセットを取得することを意味しますか?変更を受け入れるか?

ベストアンサー1

したがって、Unixを学ぶときにすべき最善のことの1つは、マンページを読むことです。

私はただの苦手な老人ではありません。そこには本当に貴重な情報があります。この場合:

説明sysctlは、実行時にカーネルパラメータを変更するために使用されます。利用可能なパラメータは/ proc / sys /にリストされています。 LinuxでsysctlをサポートするにはProcfsが必要です。 sysctl を使用して sysctl データを読み書きできます。

だから私たちはできる:

$sudo sysctl -a | grep kernel.perf_event_max_sample_rate
kernel.perf_event_max_sample_rate = 50000
sysctl: reading key "net.ipv6.conf.all.stable_secret"
sysctl: reading key "net.ipv6.conf.default.stable_secret"
sysctl: reading key "net.ipv6.conf.enp3s0.stable_secret"
sysctl: reading key "net.ipv6.conf.lo.stable_secret"
sysctl: reading key "net.ipv6.conf.wlp1s0.stable_secret"

マンページを読むと、-aが「現在利用可能なすべての値を表示する」ことがわかりますが、以下も表示されます。

要約

  sysctl [options] [variable[=value]] [...]
  sysctl -p [file or regexp] [...]

これは、上記のコマンドを次のように短縮できることを意味します。

$ sudo sysctl kernel.perf_event_max_sample_rate
kernel.perf_event_max_sample_rate = 50000    

または、次のようにすることができます。

$ more /proc/sys/kernel/perf_event_max_sample_rate 
50000

だから要約すると:

  1. はい、数分ごとにこの変数を記録するスクリプトを書くことができますが、変数が変更されたときにログに表示される場合は、なぜそうしますか?

  2. /proc/sys/kernel/perf_event_max_sample_rate から直接値を読み取る方が sysctl を使用するよりも効率的であり、sysctl から特定の値を要求する方が grep を使用するよりも効率的です。

おすすめ記事