/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
ありがとうアレクサンダー・デンキン私を正しい道に導いてください。
fio
OPによると、ベンチマークと同様の問題がありました。解決済み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
源泉
Catalina Apple開発者フォーラムで共有メモリを設定する
c++ - 共有メモリ「オープンファイルが多すぎます」ですが、ipcsに多くの割り当てが表示されません。
答え2
- ファイルのダウンロード
.plist
https://anonfiles.com/3eGaR6kfya/com.startup.sysctl_plist - ダウンロードしたファイルを次に移動します。
/Library/LaunchDaemons/com.startup.sysctl.plist
- 端末を起動し、2つのコマンドを順番に作成します。まず「
sudo chown root:wheel /Library/LaunchDaemons/com.startup.sysctl.plist
」、次に「sudo launchctl load -w /Library/LaunchDaemons/com.startup.sysctl.plist
」 - システムを再起動します。