
内核参数SEMMSLSEMMNSSEMOPMSEMMNI参数的设置.doc
3页这四个参数Ad-H没搞淸楚 今天问了下旺旺,大概整了一下,后而会再补充以下是linux文档上的说明:/proc/sys/kernel/sem (since Linux 2.4)This file contains 4 numbers defining limits for System V I PC semaphores. These fields are, inorder:SEMMSL The maximum semaphores per semaphore set.SEMMNS A system-wide limit on the number of semaphores in all semaphore sets.SEMOPM The maximum number of operations that may be specified in a semop(2) call・SEMMNI A system-wide limit on the maximum number of semaphore identifiers.semaphore set:信号量集semaphore :信号量。
自C根据这个说RJJ, HY一个图信号集最 灿: SEMMNI信号集2信号信号信号信号集n,X信号信号信号信号—件启集可说拥 有的最多 信号数SEMMSL=4系统中信号量最多数SEMMNS=SEMMSL*SEMMNISErirtO PM操作的最大信号SEMOPMSEMOPM调用SEMMSL,SEMOPM:ift 2.发生大规模enqueue lock时,通知等待在此锁资源上的进程(如果有500个进程等待同一个 锁,则需要进行2次semops调川,來通知等待的进程,锁可以使川了)补充:SEMOPM是一个系统调用,类似的还冇semtimedop调用可以跟踪一下oracle的Igwr进程,可以看到秒隔3秒调用一次semtimedop,是一个超时调 用,当semtimedop()调用致使Igwr进程进入睡眠,因为logbuffer在空闲的情况下有一个3秒 刷一次的机制:[oracle@fd_perf4 〜]$ ps ・ef|grep Igwroracle 15341 1934 0 19:49 pts/O 00:00:00 grep Igwroracle 15445 1 0 2010 ? 00:14:06 ora_lgwr_fd_perf4[oracle@fd_perf4 〜]$ strace -p 15445Process 15445 attached 一 interrupt to quittimes(NULL) = 2742619382semtimedop(98304, 0x7fbfffde70, 1, {1, 420000000}) = -1 E AGA IN (Resource temporarily un available)times(NULL) = 2742619524times(NULL) = 2742619524times(NULL) = 2742619524semtimedop(98304, 0x7fbfffde70, 1, {3, 0}) = -1 EAGAIN (Resource temporarily unavailable)times(NULL) = 2742619824times(NULL) = 2742619824getrusage(RUSAGE_SELF, {ru_utime={237, 721860}, ru_stime={608, 380512}, ...}) = 0getrusage(RUSAGE_SELF, {ru_utime={237, 721860}, ru_stime={60& 380512}, ...}) = 0times(NULL) = 2742619824semtimedop(98304, 0x7fbfffde70, 1, {3, 0}) = -1 EAGAIN (Resource temporarily unavailable)times(NULL) = 2742620124 times(NULL) = 2742620124 times(NULL) = 2742620124。
