如何增加 MacOS/BSD 上的最大信号量限制
How to increase the maximum semaphore limit on MacOS/BSD
我想增加信号灯同时打开的最大数量
我知道可以通过
检索当前限制
long nsems_max = sysconf(_SC_SEM_NSEMS_MAX);
或通过
从控制台
ipcs -S
semmap: 30 (# of entries in semaphore map)
semmni: 8 (# of semaphore identifiers)
semmns: 128 (# of semaphores in system)
semmnu: 0 (# of undo structures in system)
semmsl: 87381 (max # of semaphores per id)
semopm: 5 (max # of operations per semop call)
semume: 10 (max # of undo entries per process)
semusz: 32 (size in bytes of undo structure)
semvmx: 32767 (semaphore maximum value)
semaem: 16384 (adjust on exit max value)
在 Linux 上,可以通过手动编辑来更改限制
/proc/sys/kernel/sem
但这不适用于 MacOS/BSD。如何change/increase限制Mac?
以下变量可通过 /usr/sbin/sysctl
编辑(适用于您的当前会话),或者您可以创建一个 plist 以始终在重新启动时设置值。您必须创建该文件。
sudo vi /Library/LaunchDaemons/sysctl.plist`
随心所欲地设置它们。
/Library/LaunchDaemons/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">
<plist version="1.0">
<dict>
<key>Label</key>
<string>sysctl</string>
<key>ProgramArguments</key>
<array>
<string>/usr/sbin/sysctl</string>
<string>-w</string>
<string>kern.sysv.semmni=87381</string>
<string>kern.sysv.semmns=87381</string>
<string>kern.sysv.semmnu=87381</string>
<string>kern.sysv.semmsl=87381</string>
<string>kern.sysv.semume=10</string>
<string>kern.posix.sem.max=10000</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
然后加载:
launchctl load /Library/LaunchDaemons/sysctl.plist
我想增加信号灯同时打开的最大数量
我知道可以通过
检索当前限制long nsems_max = sysconf(_SC_SEM_NSEMS_MAX);
或通过
从控制台ipcs -S
semmap: 30 (# of entries in semaphore map)
semmni: 8 (# of semaphore identifiers)
semmns: 128 (# of semaphores in system)
semmnu: 0 (# of undo structures in system)
semmsl: 87381 (max # of semaphores per id)
semopm: 5 (max # of operations per semop call)
semume: 10 (max # of undo entries per process)
semusz: 32 (size in bytes of undo structure)
semvmx: 32767 (semaphore maximum value)
semaem: 16384 (adjust on exit max value)
在 Linux 上,可以通过手动编辑来更改限制
/proc/sys/kernel/sem
但这不适用于 MacOS/BSD。如何change/increase限制Mac?
以下变量可通过 /usr/sbin/sysctl
编辑(适用于您的当前会话),或者您可以创建一个 plist 以始终在重新启动时设置值。您必须创建该文件。
sudo vi /Library/LaunchDaemons/sysctl.plist`
随心所欲地设置它们。
/Library/LaunchDaemons/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">
<plist version="1.0">
<dict>
<key>Label</key>
<string>sysctl</string>
<key>ProgramArguments</key>
<array>
<string>/usr/sbin/sysctl</string>
<string>-w</string>
<string>kern.sysv.semmni=87381</string>
<string>kern.sysv.semmns=87381</string>
<string>kern.sysv.semmnu=87381</string>
<string>kern.sysv.semmsl=87381</string>
<string>kern.sysv.semume=10</string>
<string>kern.posix.sem.max=10000</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
然后加载:
launchctl load /Library/LaunchDaemons/sysctl.plist