 |
 |
 |
 |
|
|
 |
|
If the Linux system is exclusively used as a database server,
using approximately 60% of the available memory for database buffer
pools is a good starting point. Normally the database buffer pools
are allocated within shared memory. So don't forget to adapt the
Linux kernel shared memory limits in order to
allow the allocation of the appropriate shared memory chunks.
Kernel parameter changes are normally done within
/etc/sysctl.conf. Ensure that your Linux distribution has
the sysctl service enabled, so that the sysctl config file is read
at boot time. For example, we used the values below for a database
performance test.
|
Linux memory
|
kernel.shmall
|
kernel.shmmax
|
kernel.shmmni
|
|
------------
|
-------------
|
-------------
|
-------------
|
|
2GB
|
400000
|
1700000000
|
4096
|
|
4GB
|
921600
|
3774873600
|
4096
|
|
8GB
|
1971200
|
8074035200
|
4096
|
|
12GB
|
3020800
|
12373196800
|
4096
|
|
16GB
|
4070400
|
16672358400
|
4096
|
|
20GB
|
5120000
|
20971520000
|
4096
|
|
24GB
|
6169600
|
25270681600
|
4096
|
kernel.shmall: available memory for shared memory in 4K pages
kernel.shmmax: maximum size of one shared memory segment in byte
kernel.shmmni: maximum number of shared segments
|
|
 |
|
 |