通过kctune命令修改kernel参数

本文介绍在HP-UX平台中如何使用kctune命令调整内核参数以优化数据库性能,特别是针对aio_max_ops参数的具体修改过程。

在HPUX平台上安装数据库的时候,经常需要去修改kernel参数,通常都是通过SAM去修改,也可以同kctune这个命令去修改。
直接数据kctune可以看到当前的kernel值
[rp4440@/]#kctune
Tunable                       Value  Expression  Changes
NSTREVENT                        50  Default    
NSTRPUSH                         16  Default    
NSTRSCHED                         0  Default    
STRCTLSZ                       1024  Default    
STRMSGSZ                          0  Default    
acctresume                        4  Default    
acctsuspend                       2  Default    
aio_listio_max                  256  Default     Immed
aio_max_ops                    2048  Default     Immed
aio_monitor_run_sec              30  Default     Immed
aio_physmem_pct                  10  Default    
aio_prio_delta_max               20  Default     Immed
aio_proc_thread_pct              70  Default     Immed
aio_proc_threads               1024  Default     Immed
aio_req_per_thread                1  Default     Immed
。。。。。。。。。。。。。。。。
假设我们要修改aio_max_ops ,目前是2048,修改成4096
可以这样执行
[rp4440@/]#kctune aio_max_ops=4096
WARNING: The automatic 'backup' configuration currently contains the
         configuration that was in use before the last reboot of this
         system.
     ==> Do you wish to update it to contain the current configuration
         before making the requested change? y
       * The automatic 'backup' configuration has been updated.
       * The requested changes have been applied to the currently
         running system.
Tunable                Value  Expression  Changes
aio_max_ops  (before)   2048  Default     Immed
             (now)      4096  4096       
           
会提示你是否要修改,数据“Y"进行修改,修改后会显示当前值和以前值


from:http://blog.chinaunix.net/u/436/showart_2012114.html

<think>我们正在处理一个SAP安装过程中遇到的Oracle数据库错误:ORA-27104。根据用户描述,在安装SAPBusinessSuite7i2016EHP8时遇到此错误,提示“system-definedlimitsforsharedmemorymisconfigured”。这意味着系统为共享内存配置的限制设置不正确。首先,让我们理解ORA-27104错误。这个错误通常发生在Oracle数据库尝试分配共享内存时,但操作系统内核参数设置不足以满足请求。具体来说,与共享内存相关的内核参数(如SHMMAX,SHMALL,SHMMNI等)可能设置过小。接下来,我们需要考虑SAPBusinessSuite7i2016的安装环境。根据引用[1]和[4],我们知道SAPECC6.0EHP8是一个大型系统,需要较大的内存和存储空间。因此,对操作系统的内核参数要求也较高。解决此问题的步骤通常包括:1.**检查当前内核参数设置**:查看当前系统的共享内存限制参数。2.**计算所需的值**:根据SAP和Oracle的安装要求,计算所需的内核参数值。3.**修改内核参数**:调整系统内核参数以满足要求。4.**使配置生效**:重新加载配置并验证。具体操作如下:###1.检查当前内核参数使用以下命令检查当前的共享内存设置:```bash#查看单个共享内存段的最大大小(字节)sysctlkernel.shmmax#查看系统范围内共享内存总大小(字节)sysctlkernel.shmall#查看系统范围内共享内存段的最大数量sysctlkernel.shmmni```另外,还需要检查与内存页面相关的参数:```bashsysctlvm.hugetlb_shm_groupsysctlvm.nr_hugepages```以及用户资源限制(如`/etc/security/limits.conf`)中为Oracle用户设置的内存锁定限制。###2.计算所需的值根据SAP和Oracle的安装文档,我们需要为共享内存设置足够大的值。通常,SAP会提供推荐的内核参数设置。例如:-`kernel.shmmax`:应设置为物理内存大小的一半或更大,但至少为SAP要求的值(通常为几GB以上)。对于大型SAP系统,可能需要设置为几十GB。-`kernel.shmall`:应设置为`kernel.shmmax`除以页面大小(通常为4096字节)。例如,如果`shmmax`为32GB(即34359738368字节),则`shmall`应为34359738368/4096=8388608。-`kernel.shmmni`:通常设置为4096。此外,SAP系统通常使用大页(hugepages),所以需要设置`vm.nr_hugepages`(大页的数量)和`vm.hugetlb_shm_group`(允许使用大页的组,通常设置为Oracle用户的组)。###3.修改内核参数编辑`/etc/sysctl.conf`文件,添加或修改以下参数(示例值,具体需根据实际内存大小调整):```confkernel.shmmax=68719476736#64GBkernel.shmall=16777216#16GB(以4KB页为单位,计算:68719476736/4096=16777216)kernel.shmmni=4096vm.nr_hugepages=30720#假设每个大页2MB,则60GB内存需要30720个(60*1024/2=30720)vm.hugetlb_shm_group=<dba_group>#替换为Oracle用户的组ID```同时,确保在`/etc/security/limits.conf`中为Oracle用户设置了足够的`memlock`(内存锁定)限制。例如:```oraclehardmemlockunlimitedoraclesoftmemlockunlimited```###4.使配置生效运行以下命令使修改的内核参数生效:```bashsysctl-p```然后,重新登录Oracle用户以使limits生效,或者重启系统以确保所有设置生效。###5.验证重新运行SAP安装程序,检查是否解决了ORA-27104错误。###注意事项-以上参数值仅为示例,实际值应根据系统物理内存大小和SAP/Oracle的推荐值进行调整。-如果系统启用了SELinux,可能需要调整相关策略。-确保Oracle数据库实例的参数(如SGA大小)设置正确,不要超过操作系统的共享内存限制。如果问题仍然存在,可能需要进一步检查Oracle的日志文件以获取更详细的错误信息。§§相关问题§§1.如何确定适合SAP系统安装的内核参数值?2.除了共享内存配置,还有哪些常见的Oracle数据库安装错误?3.如何为SAP系统优化Linux操作系统的性能?4.在SAP安装过程中,如何诊断和解决其他ORA-错误?</think>### 解决ORA-27104共享内存配置错误 在安装SAP Business Suite 7i 2016 EHP8时遇到ORA-27104错误,表明操作系统级别的共享内存参数配置不足。以下是系统性的解决方案: #### 1. **验证操作系统参数** - **检查当前配置**: ```bash # 查看共享内存限制 sysctl -a | grep shm # 关键参数: # kernel.shmmax = 最大共享内存段大小 # kernel.shmall = 系统总共享内存页数 # kernel.shmmni = 共享内存段最大数量 ``` 典型SAP EHP8环境要求: - `shmmax ≥ 物理内存的70%`(如64GB内存需≥45GB) - `shmall ≥ shmmax/4096`(4096为页大小) - `shmmni ≥ 4096` - **修改配置文件**: 编辑`/etc/sysctl.conf`,示例: ```conf kernel.shmmax = 48318382080 # 45GB kernel.shmall = 11811160 # 45GB/4096 kernel.shmmni = 4096 vm.hugetlb_shm_group = <dba_group_id> vm.nr_hugepages = 24000 # 约48GB大页内存 ``` 应用配置:`sysctl -p` #### 2. **调整用户资源限制** 编辑`/etc/security/limits.conf`: ```conf oracle soft memlock unlimited oracle hard memlock unlimited oracle soft nofile 65536 oracle hard nofile 65536 ``` > **注意**:需重新登录Oracle用户生效 #### 3. **配置大页内存(HugePages)** - 计算需求: ```bash # 根据SAP要求计算 HugePages_Total = (SGA_MAX_SIZE + 1GB) / 2MB ``` - 验证: ```bash grep HugePages /proc/meminfo ``` #### 4. **Oracle参数调整** 修改`init<SID>.ora`: ```conf use_large_pages = ONLY # 强制使用大页 sga_max_size = 40G # 匹配物理内存比例 ``` #### 5. **重启关键服务** ```bash # 停止相关服务 sapcontrol -nr <实例号> -function StopSystem # 重启数据库 su - oracle sqlplus / as sysdba > shutdown immediate > startup ``` #### 6. **验证修复** - 检查数据库日志: ```bash tail -f /oracle/<SID>/saptrace/background/alert_<SID>.log ``` - 确认参数生效: ```sql SELECT * FROM v$sgainfo; ``` > **根本原因**:该错误通常因操作系统共享内存限制低于Oracle SGA配置引起,在SAP大型系统(如EHP8)中尤为常见[^1][^4]。SAP ECC6 EHP8虚拟机要求220G存储空间,表明其对资源的高需求[^1]。 ### 注意事项 1. 使用`ulimit -a`验证用户限制 2. AIX/HP-UX系统需修改`vmo`/`kctune`参数 3. 若使用虚拟机,确保宿主机的内存过量分配比例≤1:1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值