内核参数优化
参考《oracle dba工作笔记》
1、fs.aio-max-nr
可以同时拥有的异步IO请求的数目,oracle推荐1048576(1024x1024),也就是1024K。
[root@11g ~]# cat /proc/sys/fs/aio-max-nr
1048576
这个参数表示系统所有进程可以打开的文件数量。如果得到句柄不足的错误信息,应该是这个值设置的太小,需要增大。
2、kernel.shmmax
它定义了一个linux进程能分配虚拟地址空间的单个共享内存段的大小(字节为单位)。
[root@11g ~]# cat /proc/sys/kernel/shmmax
1310720000
oracle的建议是希望一个大的共享内存段能容纳整个SGA,这样在任何时候都不会有性能下降的隐患。
使用ipcs -m能够看到共享内存段的分配情况。
[root@11g ~]# ipcs -m
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x00000000 917504 root 600 393216 2 dest
0x00000000 950273 root 600 393216 2 dest
0x00000000 983042 root 600 393216 2 dest
0x00000000 1015811 root 600 393216 2 dest
0x00000000 3244036 oracle 640 16777216 27
0x00000000 3276805 oracle 640 1241513984 27
0x42e38fd0 3309574 oracle 640 2097152 27
0x00000000 3178503 root 600 393216 2 dest
0x00000000 1048586 root 600 393216 2 dest
0x00000000 1081355 root 600 393216 2 dest
0x00000000 1114124 root 600 393216 2 dest
0x00000000 1146893 root 600 393216 2 dest
0x00000000 1179662 root 600 393216 2 dest
0x00000000 1212431 root 600 393216 2 dest
0x00000000 1245200 root 600 393216 2 dest
0x00000000 1277969 root 600 393216 2 dest
0x00000000 1310738 root 600 393216 2 dest
0x00000000 1343507 root 600 393216 2 dest
0x00000000 1376276 root 600 393216 2 dest
0x00000000 1736725 root 600 393216 2 dest
0x00000000 1605654 root 600 393216 2 dest
0x00000000 1638423 root 600 393216 2 dest
0x00000000 2097176 root 600 393216 2 dest
3、kernel.shmall
这个参数表示配置系统一次能够使用的最大共享页面数,该参数的值基于ceil(shmmax/PAGE_SIZE)
[root@11g ~]# getconf PAGE_SIZE
4096
除非用了big pages或huge pages,PAGE_SIZE通常为4096byte.
查看方法如下
[root@11g ~]# cat /proc/sys/kernel/shmall
2097152
如果该值太小,会遇到下面问题
ora-27102:out of memory
4、kernel.shmmni
该参数用于设置共享内存段的总个数,即总共可以开辟多少个共享内存段。对于oracle 11g,oracle建议至少4096.
5、kernel.sem
这个参数成为信号量或信号灯,是一个非负整数计数器,通常用来协调对资源的访问。
参考《oracle dba工作笔记》
1、fs.aio-max-nr
可以同时拥有的异步IO请求的数目,oracle推荐1048576(1024x1024),也就是1024K。
[root@11g ~]# cat /proc/sys/fs/aio-max-nr
1048576
这个参数表示系统所有进程可以打开的文件数量。如果得到句柄不足的错误信息,应该是这个值设置的太小,需要增大。
2、kernel.shmmax
它定义了一个linux进程能分配虚拟地址空间的单个共享内存段的大小(字节为单位)。
[root@11g ~]# cat /proc/sys/kernel/shmmax
1310720000
oracle的建议是希望一个大的共享内存段能容纳整个SGA,这样在任何时候都不会有性能下降的隐患。
使用ipcs -m能够看到共享内存段的分配情况。
[root@11g ~]# ipcs -m
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x00000000 917504 root 600 393216 2 dest
0x00000000 950273 root 600 393216 2 dest
0x00000000 983042 root 600 393216 2 dest
0x00000000 1015811 root 600 393216 2 dest
0x00000000 3244036 oracle 640 16777216 27
0x00000000 3276805 oracle 640 1241513984 27
0x42e38fd0 3309574 oracle 640 2097152 27
0x00000000 3178503 root 600 393216 2 dest
0x00000000 1048586 root 600 393216 2 dest
0x00000000 1081355 root 600 393216 2 dest
0x00000000 1114124 root 600 393216 2 dest
0x00000000 1146893 root 600 393216 2 dest
0x00000000 1179662 root 600 393216 2 dest
0x00000000 1212431 root 600 393216 2 dest
0x00000000 1245200 root 600 393216 2 dest
0x00000000 1277969 root 600 393216 2 dest
0x00000000 1310738 root 600 393216 2 dest
0x00000000 1343507 root 600 393216 2 dest
0x00000000 1376276 root 600 393216 2 dest
0x00000000 1736725 root 600 393216 2 dest
0x00000000 1605654 root 600 393216 2 dest
0x00000000 1638423 root 600 393216 2 dest
0x00000000 2097176 root 600 393216 2 dest
3、kernel.shmall
这个参数表示配置系统一次能够使用的最大共享页面数,该参数的值基于ceil(shmmax/PAGE_SIZE)
[root@11g ~]# getconf PAGE_SIZE
4096
除非用了big pages或huge pages,PAGE_SIZE通常为4096byte.
查看方法如下
[root@11g ~]# cat /proc/sys/kernel/shmall
2097152
如果该值太小,会遇到下面问题
ora-27102:out of memory
4、kernel.shmmni
该参数用于设置共享内存段的总个数,即总共可以开辟多少个共享内存段。对于oracle 11g,oracle建议至少4096.
5、kernel.sem
这个参数成为信号量或信号灯,是一个非负整数计数器,通常用来协调对资源的访问。