Home
Packages
Forums
Wiki
GitLab
Security
AUR
Download
コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
目次
コミュニティに貢献
最近の出来事
おまかせ表示
特別ページ
交流
ヘルプ
貢献
最近の更新
最近の議論
新しいページ
統計
リクエスト
ArchWiki
検索
検索
表示
アカウント作成
ログイン
個人用ツール
アカウント作成
ログイン
Sysctlのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
Sysctl
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
{{Lowercase title}} [[Category:カーネル]] [[en:Sysctl]] [[Wikipedia:sysctl|sysctl]] は稼働中の[[カーネルパラメータ]]を確認・変更するためのツールです ([[公式リポジトリ]]の {{Pkg|procps-ng}} パッケージ)。sysctl は procfs ({{ic|/proc/}} の仮想プロセスファイルシステム) で実装されています。 == 設定 == {{Note|バージョン 207 と 21x から、[[systemd]] は {{Ic|/etc/sysctl.d/*.conf}} と {{Ic|/usr/lib/sysctl.d/*.conf}} の設定だけを適用するようになっています。{{Ic|/etc/sysctl.conf}} をカスタマイズしていた場合は、ファイルの名前を {{Ic|/etc/sysctl.d/99-sysctl.conf}} のように変更する必要があります。{{Ic|/etc/sysctl.d/foo}} などのファイルを作成していた場合、{{Ic|/etc/sysctl.d/foo.conf}} と名前を変更してください。}} '''sysctl''' のプリロード/設定ファイルは {{Ic|/etc/sysctl.d/99-sysctl.conf}} に作成することができます。[[systemd]] では、{{Ic|/etc/sysctl.d/}} と {{Ic|/usr/lib/sysctl.d/}} はカーネルの sysctl パラメータにどちらも使えるディレクトリです。名前と元のディレクトリによって処理される順番が決まります。最後のパラメータによって前の方のパラメータが置き換えられるので順番は重要です。例えば、{{ic|/usr/lib/sysctl.d/50-default.conf}} に書かれたパラメータは {{ic|/etc/sysctl.d/50-default.conf}} や両方のディレクトリよりも後に処理される設定ファイルにある同じパラメータによって置き換えられます。 全ての設定ファイルを手動でロードするには、次を実行します: # sysctl --system 適用される階層が出力されます。単一のパラメータファイルを指定してロードすることも可能です: # sysctl -p ''filename.conf'' 詳しくは [http://0pointer.de/blog/projects/the-new-configuration-files the new configuration files] や [http://0pointer.de/public/systemd-man/sysctl.d.html systemd の sysctl.d man ページ] を見て下さい。 利用可能なパラメータは {{Ic|/proc/sys/}} 以下に並んでいます。例えば、{{Ic|kernel.sysrq}} パラメータはファイルシステム上の {{Ic|/proc/sys/kernel/sysrq}} ファイルにあたります。{{Ic|sysctl -a}} コマンドを使うことで現在利用可能な値を全て表示することができます。 {{Note|カーネルドキュメントをインストールしている場合 ({{Pkg|linux-docs}})、sysctl 設定に関する詳細な情報が {{Ic|/usr/lib/modules/$(uname -r)/build/Documentation/sysctl/}} で読めます。sysctl 設定を変更する前にこれらを一読することが強く推奨されています。}} 設定の変更はファイルの操作によるか {{Ic|sysctl}} ユーティリティを使って行います。例えば、一時的に[[キーボードショートカット|マジック SysRq キー]]を有効にするには: # sysctl kernel.sysrq=1 もしくは: # echo "1" > /proc/sys/kernel/sysrq 再起動後も変更を維持させるには、{{Ic|/etc/sysctl.d/99-sysctl.conf}} や他の {{Ic|/etc/sysctl.d/}} 内の適用されるパラメータファイルに適切な行を追加・編集してください。 {{Tip|適用することができるパラメータがロードされないカーネルモジュールに依存していることもあります。例えば {{ic|/proc/sys/net/bridge/*}} のパラメータは {{ic|br_netfilter}} モジュールに依存しています。モジュールが実行時に (または再起動後) ロードされない場合、パラメータは''ひっそりと''適用されないことになります。[[カーネルモジュール#ロード]]を見て下さい。}} == セキュリティ == [[セキュリティ#カーネルの防御]]を見て下さい。 == ネットワーク == === パフォーマンスを向上させる === {{Warning|以下の設定はロードバランシングや NAT を行っている場合にフレームがドロップする可能性があります。ローカルネットワークでしか通信しないサーバーで使ってください。}} # reuse/recycle time-wait sockets net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 === TCP/IP スタックの防御 === 以下では IPv4 プロトコルでカーネルのネットワークセキュリティを厳しくするオプションのパラメータセットを示しています。同一の効果がある IPv6 パラメータも存在します。 ユースケースによって、例えば[[ルーター]]として使用するシステムで、他のパラメータが役に立ったり必要になることもあります。 {{hc|/etc/sysctl.d/51-net.conf|2= #### ipv4 networking and equivalent ipv6 parameters #### ## TCP SYN cookie protection (default) ## helps protect against SYN flood attacks ## only kicks in when net.ipv4.tcp_max_syn_backlog is reached net.ipv4.tcp_syncookies = 1 ## protect against tcp time-wait assassination hazards ## drop RST packets for sockets in the time-wait state ## (not widely supported outside of linux, but conforms to RFC) net.ipv4.tcp_rfc1337 = 1 ## sets the kernels reverse path filtering mechanism to value 1 (on) ## will do source validation of the packet's recieved from all the interfaces on the machine ## protects from attackers that are using ip spoofing methods to do harm net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.all.rp_filter = 1 ## tcp timestamps ## + protect against wrapping sequence numbers (at gigabit speeds) ## + round trip time calculation implemented in TCP ## - causes extra overhead and allows uptime detection by scanners like nmap ## enable @ gigabit speeds net.ipv4.tcp_timestamps = 0 #net.ipv4.tcp_timestamps = 1 ## log martian packets net.ipv4.conf.default.log_martians = 1 net.ipv4.conf.all.log_martians = 1 ## ignore echo broadcast requests to prevent being part of smurf attacks (default) net.ipv4.icmp_echo_ignore_broadcasts = 1 ## ignore bogus icmp errors (default) net.ipv4.icmp_ignore_bogus_error_responses = 1 ## send redirects (not a router, disable it) net.ipv4.conf.default.send_redirects = 0 net.ipv4.conf.all.send_redirects = 0 ## ICMP routing redirects (only secure) #net.ipv4.conf.default.secure_redirects = 1 (default) #net.ipv4.conf.all.secure_redirects = 1 (default) net.ipv4.conf.default.accept_redirects=0 net.ipv4.conf.all.accept_redirects=0 net.ipv6.conf.default.accept_redirects=0 net.ipv6.conf.all.accept_redirects=0 }} == 仮想メモリ == Linux カーネルの仮想メモリ (VM) サブシステムの制御やダーティデータのディスクへの書き出しを調整するパラメータがいくつか存在します。詳しくは [https://www.kernel.org/doc/Documentation/sysctl/vm.txt Linux カーネルドキュメント]を見てください。例えば以下のようなパラメータが存在します: * {{ic|1=vm.dirty_ratio = 3}} : システムの空きページや回収可能ページを含む合計メモリから見たパーセンテージとして、ダーティデータを書き出し始めるディスク書き込みを発生させるページ数。 * {{ic|1=vm.dirty_background_ratio = 2}} : システムの空きページや回収可能ページを含む合計メモリから見たパーセンテージとして、ダーティデータを書き出し始めるバックグラウンドカーネルのフラッシュスレッドのページ数。 上記の値を設定する際はメモリの合計量を考慮する必要があります。例えば、マシンに搭載されているシステムメモリとして話を簡単にすると以下のようになります: * 搭載されているメモリが 1GB の場合は {{ic|vm.dirty_ratio}} の設定をメモリの 10% に設定するというコンセンサスが合理的です (メモリの 10% はつまり {{#expr: 1000/10 round 0}} MB になります)。ただしマシンにもっと大量にメモリを搭載している、例えば 16 GB もマシンに積んでいる場合 (その場合 10% は {{#expr: 16/10 round 1 }} GB となります)、磁気ディスクにライトバックするのに数秒近くもかかってしまうため適当な数字とは言えません。この場合、3 に設定するのが適当でしょう (16 GB の 3% は約 491 MB です)。 * {{ic|vm.dirty_background_ratio}} も同じように、メモリが少ない時はデフォルトの 5 が丁度良いかもしれませんが、システムの合計メモリの量によって調整するべきです。 他にも以下のパラメータが存在します: * {{ic|1=vm.vfs_cache_pressure = 60}} : ディレクトリや inode オブジェクトのキャッシュ (VFS キャッシュ) に使用されるメモリをカーネルがどれくらい回収するか制御する値です。デフォルト値の 100 から低くするとカーネルは VFS キャッシュをあまり回収しなくなります (0 に設定してはいけません。メモリ不足状態になる可能性があります)。 == MDADM == カーネルがソフトウェア raid デバイスの resync を実行するときは、システムに高負担をかけないように速度を制限しています。sysctl を使って速度制限を上げたり下げたりすることが可能です。 {{bc|1= # Set maximum and minimum speed of raid resyncing operations dev.raid.speed_limit_max = 10000 dev.raid.speed_limit_min = 1000 }} mdadm が {{ic|md_mod}} モジュールとしてコンパイルされている場合、上記の設定はモジュールがロードされた後にのみ使うことができます。{{ic|/etc/sysctl.d}} を使って起動時に設定をロードする場合、{{ic|md_mod}} モジュールは {{ic|/etc/modules-load.d}} で事前にロードすることができます。 == トラブルシューティング == === 定期的にシステムがフリーズする === ダーティバイトを十分小さい値に設定 (例えば 4M): vm.dirty_background_bytes = 4194304 vm.dirty_bytes = 4194304 {{ic|kernel.io_delay_type}} を変更してみる (x86 のみ): * 0 - IO_DELAY_TYPE_0X80 * 1 - IO_DELAY_TYPE_0XED * 2 - IO_DELAY_TYPE_UDELAY * 3 - IO_DELAY_TYPE_NONE == 参照 == * {{man|8|sysctl}} と {{man|5|sysctl.conf}} * [https://www.kernel.org/doc/Documentation/sysctl/ /proc/sys/ の Linux カーネルドキュメント] * カーネルドキュメント: [https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt IP Sysctl] * [http://blog.gotux.net/code/config/sysctl/ SysCtl.conf Tweaked for Security and Cable Speed]{{Dead link|2015|12|14}} * [http://tldp.org/HOWTO/Adv-Routing-HOWTO/lartc.kernel.html sysctl のカーネルネットワークパラメータ]
このページで使用されているテンプレート:
テンプレート:Accuracy
(
ソースを閲覧
)
テンプレート:Bc
(
ソースを閲覧
)
テンプレート:Ic
(
ソースを閲覧
)
テンプレート:Lowercase title
(
ソースを閲覧
)
テンプレート:META Message
(
ソースを閲覧
)
テンプレート:Man
(
ソースを閲覧
)
テンプレート:Note
(
ソースを閲覧
)
テンプレート:Out of date
(
ソースを閲覧
)
テンプレート:Pkg
(
ソースを閲覧
)
テンプレート:Tip
(
ソースを閲覧
)
テンプレート:Warning
(
ソースを閲覧
)
Sysctl
に戻る。
検索
検索
Sysctlのソースを表示
話題を追加