再起動後も、sysctl -A の値が /etc/sysctl.conf と一致しません。

再起動後も、sysctl -A の値が /etc/sysctl.conf と一致しません。

/etc/sysctl.conf私はMac Monterey 12.1を使用しており、ファイルの共有メモリ制限を増やしました。

kern.sysv.shmmax: 16777216
kern.sysv.shmmin: 1
kern.sysv.shmmni: 128
kern.sysv.shmseg: 512
kern.sysv.shmall: 4096
security.mac.posixshm_enforce: 1
security.mac.sysvshm_enforce: 1

コンピュータを再起動して終了します。ただし、再起動後に以下を実行すると、sysctl -A | grep shmファイルとは異なる値が表示されます。

kern.sysv.shmall: 1024
kern.sysv.shmmax: 4194304
kern.sysv.shmmin: 1
kern.sysv.shmmni: 32
kern.sysv.shmseg: 8
security.mac.posixshm_enforce: 1
security.mac.sysvshm_enforce: 1

それでも/etc/sysctl.conf変更が続くとマークされます。

つまり、sysctl -A | grep shmこれらの値がどこで得られるかは不明です。

どこで修正する必要があるか知っている人はいますか?

答え1

ありがとうアレクサンダー・デンキン私を正しい道に導いてください。

fioOPによると、ベンチマークと同様の問題がありました。解決済みAlexanderが投稿したコンテンツの修正版。

以下は、やや要約され、カスタマイズされたステップです。ユーザー 997112問題。

スピード

  • SIPを無効にする
    • アップルの免責事項

      警告する

      必要なタスクを実行するには、SIP を一時的に無効にし、できるだけ早く再度有効にします。テストが完了した後にSIPを再度有効にできないと、コンピュータがマルウェアに脆弱になる可能性があります。

  • 作る/Library/LaunchDaemons/com.startup.sysctl.plist
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <!-- DISABLE SIP TO USE: macOS Recovery > Utilities > Terminal > `csrutil disable` > Reboot -->
    <plist version="1.0">
        <dict>
            <key>Label</key>
            <string>com.startup.sysctl</string>
            <key>LaunchOnlyOnce</key>
            <true/>
            <key>StandardErrorPath</key>
                <string>/private/tmp/sysctl.err</string>
            <key>StandardOutPath</key>
                <string>/private/tmp/sysctl.out</string>
            <key>ProgramArguments</key>
            <array>
                <string>/usr/sbin/sysctl</string>
                <string>-w</string>
                <string>kern.sysv.shmmax=16777216</string>
                <string>kern.sysv.shmmin=1</string>
                <string>kern.sysv.shmmni=128</string>
                <string>kern.sysv.shmseg=512</string>
                <string>kern.sysv.shmall=4096</string>
            </array>
            <key>RunAtLoad</key>
            <true/>
        </dict>
    </plist>
    
  • 一部の管理項目の後にPLISTをロードする
    # sanity check
    sysctl -a | grep shm
    
    # set permissions
    sudo chown root:wheel /Library/LaunchDaemons/com.startup.sysctl.plist
    
    # validate key-value pairs
    plutil /Library/LaunchDaemons/com.startup.sysctl.plist
    
    # load plist
    sudo launchctl bootstrap system /Library/LaunchDaemons/com.startup.sysctl.plist
    
    # check logs
    tail -f /tmp/sysctl.out
    tail -f /tmp/sysctl.err
    
    # recheck sysctl values
    sysctl -a | grep shm
    

源泉

macos - 再起動後も、sysctl -A の値が /etc/sysctl.conf と一致しません。 - Think Tank 101 - CC copyrightベースのQ&A共有プラットフォーム

Catalina Apple開発者フォーラムで共有メモリを設定する

c++ - 共有メモリ「オープンファイルが多すぎます」ですが、ipcsに多くの割り当てが表示されません。

kernel - macOS Big Surで開かれたファイルの最大数を増やす方法は? - ルート

チュートリアルの開始

答え2

  1. ファイルのダウンロード.plist https://anonfiles.com/3eGaR6kfya/com.startup.sysctl_plist
  2. ダウンロードしたファイルを次に移動します。/Library/LaunchDaemons/com.startup.sysctl.plist
  3. 端末を起動し、2つのコマンドを順番に作成します。まず「sudo chown root:wheel /Library/LaunchDaemons/com.startup.sysctl.plist」、次に「sudo launchctl load -w /Library/LaunchDaemons/com.startup.sysctl.plist
  4. システムを再起動します。

関連情報