Re: [PATCH v2 0/4] ipc: reduce ipc lock contention

From: Waiman Long
Date: Tue Mar 05 2013 - 22:47:24 EST


On 03/05/2013 03:53 PM, Rik van Riel wrote:
On 03/05/2013 03:52 PM, Linus Torvalds wrote:
On Tue, Mar 5, 2013 at 11:42 AM, Waiman Long <Waiman.Long@xxxxxx> wrote:

The recommended kernel.sem value from Oracle is "250 32000 100 128". I have
tried to reduce the maximum semaphores per array (1st value) while
increasing the max number of arrays. That tends to reduce the ipc_lock
contention in kernel, but it is against Oracle's recommendation.

Ok, the Oracle recommendations seem to be assuming that we'd be
scaling the semaphore locking sanely, which we don't. Since we share
one single lock for all semaphores in the whole array, Oracle's
recommendation does the wrong thing for our ipc_lock contention.

David's patch should make it much easier to do the locking more
fine-grained, and it sounds like Rik is actively working on that,

Indeed. Though how well my patches will work with Oracle will
depend a lot on what kind of semctl syscalls they are doing.

Does Oracle typically do one semop per semctl syscall, or does
it pass in a whole bunch at once?


i had collected a strace log of Oracle instance startup a while ago. In the log, almost all of the semctl() call is to set a single semaphore value in one of the element of the array using SETVAL. Also there are far more semtimedop() than semctl(), about 100:1. Again, all the semtimedop() operations are on a single element of the semaphore array.

Please note that the behavior of Oracle at startup time may not be indicative of what it will do when running benchmarks like Swingbench. However, I don't think there will be dramatic change in behavior.

-Longman
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/