ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 操作系统的优化

操作系统的优化

原创 Linux操作系统 作者:anchen211 时间:2009-07-08 20:09:05 0 删除 编辑


1 给操作系统配置足够的内存
对主频超过500M的CPU,每CPU至少分配1G内存;
对主频低于500M的CPU,每CPU至少分配512M内存;

内存的合理分配:
系统组件              内存百分比
ORACLE SGA              50
操作系统相关组件        15
用户使用内存            35

ORACLE SGA的内存分配原则:
DATABASE BUFFER CACHE   80
SHARED POOL AREA        12
FIXED AREA AND MISCELLANEOUS  1
REDO LOG BUFFER         0.1

比如一个2G内存,100个用户并发的数据库系统,其内存分配如下:
ORACLE SGA              1024M
操作系统相关组件        306M
用户使用内存            694M

694M相当于PGA部分;100个并发会话,每个会话7M;
注意SORT_AREA_SIZE属于PGA部分,应做相应调整。

DATABASE BUFFER CACHE   800M
SHARED POOL AREA        128-188M
FIXED AREA AND MISCELLANEOUS  8M
REDO LOG BUFFER         1M

调整文件系统缓存
这部分内存应该设置为系统内存的10-15%
如果这部分没有进行调整系统有可能会出现频繁的paging和swapping。因为文件系统的缓存会达到默认的50%,导致ORACLE的可用内存不足。

调整系统的交换空间
交换空间的大小一般与物理内存大小一致就行。因为如果服务器端的各部分组件的内存如果都配置合理的话,将很少会有paging更不用说swapping

锁定SGA
设置lock_sga=true;
应该注意先要确定操作系统是否支持锁定SGA这一功能。另外配置锁定内存以后也不是说OS将不会换出ORACLE的内存。当系统内存极度缺乏的时候还是会将ORACLE的某些内存页换出。

调整ORACLE核心参数
共享内存参数:
SHMMAX:单个共享内存段的最大值,单位字节。一般设置为大于SGA的值;
SHMMIN:单个共享内存段的最小值,单位字节,这个参数可以不必设置
SHMMNI:系统最大共享内存段的数量。一般保持默认值即可。
SHMSEG:一个进程可以使用的最大共享内存段数

信号量参数
SEGMNS:系统可用的最大信号量数。一般配置为所有用户进程数的2倍。
SEMMNI:最大信号量组的个数
SEMMSL:每个信号量组的最大信号量数;
maxusers: 最大用户数
nproc:系统支持的最大进程数
nfile:操作系统能打开的最大文件数
maxuprc:每个用户的最大进程数

下面再说一下一些典型平台上的操作系统还需要进行调整的内容(此处仅以AIX为例)
1 调整异步IO
ORACLE8以上相关参数调整:
disk_asynch_io=true
db_writer_processes=1
dbwr_io_slaves=0

AIX通过一个独立AIOSERVER进程来处理异步IO。这是一个名为kproc的核心进程。一个进程同一时刻只能服务一个请求。aioservers的数量是可以配置的。当配置异步IO可用时,aioservers的默认最小值是1。可以通过修改minservers参数来更改最小的aioservers数。参数maxserver可配置最大的aioservers。默认为10。这些参数可以通过smit命令和chdev命令来配置
如:
chdev -l aio0 -a maxservers='20'

使用pstat命令来查看aioservers的数量
pstat -a | grep aios | wc -l

IBM推荐每个独立的存储设备使用10个aioservers.同时,最大值不应该超过CPU的10倍。设置minservers为maxservers的一半。

如:有20个存储设备,则设置
maxservers=200
minservers=100
但如果只有4个CPU,则设置
maxservers=40
minservers=20

使用如下命令来查看aioservers的配置情况:
lsattr -E -l aio0

查看异步请求数可使用IBM技术支持提供的一个不被支持的程序aiostat.
aiostat 1
1为间隔时间,单位为秒

2 锁定SGA
在AIX4.3.3之后支持
OS:
vmtune -S 1
必须在数据库启动之前设置
DB:
lock_sga=true;

查看当前页面信息
lsps -a
lsps -s

AIX通过使用minperm和maxperm参数来规定文件页可使用的内存大小。使用vmtune命令来对这两个参数进行设置
vmtune -p 15 -P 50
-p: 设置minperm
-P: 设置maxperm

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9375/viewspace-608657/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 调优笔记一
下一篇: 应用优化
请登录后发表评论 登录
全部评论

注册时间:2008-11-04

  • 博文量
    129
  • 访问量
    176333