(2007 6月28日)oracle 在不同平台使用大内存

来源:互联网 发布:电气控制仿真软件下载 编辑:程序博客网 时间:2024/06/05 20:35
 
     现在内存,硬盘越来越便宜, 一些旧的系统原来使用的是1G内存, 升级后,就变成8G,16G。但由于系统,特别是32位操作系统的对大内存使用有限制, 所以,需要些特别的技巧来解决。
      以下内容基本上摘自 metalink , 主要都是针对系统级别的修改,
 
在32位的RHEL4.4 平台:
 

Solution

Follow steps below to perform the configuration:

(Note: For 9iR2 patch 3318884 (9.2.0.4) and patch 3566570 (9.2.0.5)are required respectively.)

    1. Logon root

    2. Configure Linux to mount ramfs over /dev/shm at every boot. Edit /etc/rc.local and add the following:

umount /dev/shm
mount -t ramfs ramfs /dev/shm
chown oracle:oinstall /dev/shm

where oracle is the Oracle owner and oinstall is the group for Oracle owner account.

    3. Reboot server

    4. Logon as root

    5. Check whether /dev/shm is mounted with type ramfs

# mount | grep shm
ramfs on /dev/shm type ramfs (rw)
    6. Check permissions of /dev/shm

# ls -ld /dev/shm
drwxr-xr-x  3 oracle oinstall 0 Jul 13 12:12 /dev/shm

    7. Increase max locked memory limit. Edit /etc/security/limits.conf and add

*          soft    memlock        3145728*          hard    memlock        3145728    
    8. Logon to oracle

    9. Check max locked mem limit:

$ ulimit -l
3145728

    11. Configure instance parameters for VLM:

            a. ConvertDB_CACHE_SIZE, DB_xK_CACHE_SIZE parameters to DB_BLOCK_BUFFERS
            b. Add parameter USE_INDIRECT_DATA_BUFFERS=TRUE
            c. Configure SGA size according to the needs
            d. Remove SGA_TARGET if set

    12. Startup instance

    13. Examine the memory allocation:

$ ls -l /dev/shm
$ ipcs -m

    14. Configure hugepages

            a. Get Hugepagesize from

$ grep Hugepagesize /proc/meminfo

            b. Compute nr_hugepages using Note 401749.1

            c. Set kernel parameter:

  # sysctl -w vm.nr_hugepages=
           d. Set parameter for every boot.Edit/etc/sysctl.conf for vm.nr_hugepages=

    15. Check available hugepages:

 $ grep Huge /proc/meminfo
    16. Restart instance

     17. Check available hugepages (1 or 2 pages free) 

 $ grep Huge /proc/meminfo
Note: If the setting of nr_hugepages is not effective, you might need to reboot the server.
 
 
 
 64 位平台的RHEL4.4
 
Note that not all of those platforms support HugePages and the HugePage size is different if supported (See Note 361323.1). To check whether HugePages are supported/available on a running configuration, run:
< A>). To check whether HugePages are supported/available on a running configuration, run:
    $ grep Huge /proc/meminfo
and check theoutput:
    HugePages_Total:    
    HugePages_Free:
    Hugepagesize:
Regardless of the values printed, if you can see the lines above, the system supports HugePages.

Why HugePages Should Be Used on 64-bit Linux?

  • Very Large Memory:The 64-bit systems do have VLM. So the general VLM issues apply.
  • Not swappable: HugePages are notswappable. Therefore there is no page replacement mechanismoverhead.HugePages are universally regarded as pinned.
  • Eliminated page table lookup overhead: Since the pages are not subject to replacement,page table lookups are not required.
  • Faster overall memory performance: On virtual memory systems each memory operation is actually twoabstract memory operations. Since there are less number of pages towork on, the possible bottleneck on page table access is clearlyavoided.      
  • kswapd: kswapd will get very busy if there is a verylarge area to be paged (i.e. 13 million page table entries for 50GB memory) and will use an incredible amount of CPU resource. When HugePages are used, kswapd is not involved in managing them.

Configuration/Setup

The configuration for HugePages on 64-bit Linuxes are not differentfrom the configuration on 32-bit systems. See Note 361323.1  section "Parameters/Setup" for the generic setup ofthe feature.

On 64-bit for best practice, set the memlock user limit to a value larger than the total size of the sga. e.g.For 5GB SGA:
/etc/security/limits.conf:
*          soft     memlock        5243000
*          hard     memlock        5243000