oracle调优实战记录

 

 

  1. 2C调整参数

*.open_cursors=3000

*.processes=3000

db_cache_size=127488M

shared_pool_size=16G

*.db_cache_size=751082405888

*.java_pool_size=3758096384

*.large_pool_size=536870912

*.shared_pool_size=19327352832

*.streams_pool_size=20M

*.sga_target=0

  1. 11Gr调整参数

*.open_cursors=3000

*.processes=3000

oradl580.__pga_aggregate_target=0

db_cache_size=127488M

shared_pool_size=16G

*.db_cache_size=751082405888

*.java_pool_size=3758096384

*.large_pool_size=536870912

*.shared_pool_size=19327352832

*.streams_pool_size=20M

  1. Linux内核配置

fs.file-max = 6815744

kernel.sem = 250 32000 100 128

kernel.shmmni = 4096

kernel.shmall = 1073741824

kernel.shmmax = 4398046511104

kernel.panic_on_oops = 1

net.core.rmem_default = 262144

net.core.wmem_default = 262144

fs.aio-max-nr = 1048576

net.ipv4.ip_local_port_range is 9000 65500

net.ipv4.ip_local_port_range = 9000 65500

vm.nr_hugepages = 77571

net.core.rmem_max = 134217728

net.core.wmem_max = 134217728

net.ipv4.tcp_rmem = 4096 87380 134217728

net.ipv4.tcp_wmem = 4096 65536 134217728

net.core.netdev_max_backlog = 300000

  1. profile
    1. ktune.sh

The following is what’s contained in the file /etc/tune-profiles/oracle/ktune.sh.

#!/bin/sh

# Oracle ktune script

# based on the enterprise-storage profile

. /etc/tune-profiles/functions

start() {

set_cpu_governor performance

set_transparent_hugepages never

disable_disk_barriers

multiply_disk_readahead 4

return 0

}

stop() {

restore_cpu_governor

restore_transparent_hugepages

enable_disk_barriers

restore_disk_readahead

return 0

}

    1. Ktune.sysconfig

The following is whats contained in the file /etc/tune-profiles/oracle/ktune.sysconfig.

# Oracle ktune service configuration

# based on the enterprise storage profile

# This is the ktune sysctl file. You can comment this out to prevent ktune

# from applying its sysctl settings.

SYSCTL="/etc/sysctl.ktune"

# Use *.conf files in the ktune configuration directory /etc/ktune.d.

# Value: yes|no, default: yes

# It is useful if you want to load settings from additional files. Set this to

# no if you to prevent ktune from using these additional files.

USE_KTUNE_D="yes"

# This is the custom sysctl configuration file. Any settings in this file will

# be applied before the ktune settings, thus may be overridden by ktune.

SYSCTL_PRE="/etc/sysctl.d/* /etc/sysctl.conf"

# This is the custom sysctl configuration file. Any settings in this file will

# be applied after the ktune settings, overriding them

#SYSCTL_POST="/etc/sysctl.d/* /etc/sysctl.conf"

# This is the I/O scheduler ktune will use. This will *not* override anything

# explicitly set on the kernel command line, nor will it change the scheduler

# for any block device that is using a non-default scheduler when ktune starts.

# You should probably leave this on "deadline", but "as", "cfq", and "noop" are

# also legal values. Comment this out to prevent ktune from changing I/O

# scheduler settings.

ELEVATOR="deadline"

# These are the devices, that should be tuned with the ELEVATOR

ELEVATOR_TUNE_DEVS="/sys/block/{sd,cciss,dm-,vd}*/queue/scheduler"

    1. sysctl.ktune

The following is whats contained in the file /etc/tune-profiles/oracle/sysctl.ktune.

# Oracle ktune sysctl settings

# based on the enterprise-storage profile

# ktune sysctl settings for rhel6 servers with enterprise-class

# storage, maximizing i/o throughput

#

# Minimal preemption granularity for CPU-bound tasks:

# (default: 1 msec# (1 + ilog(ncpus)), units: nanoseconds)

kernel.sched_min_granularity_ns = 10000000

# SCHED_OTHER wake-up granularity.

# (default: 1 msec# (1 + ilog(ncpus)), units: nanoseconds)

#

# This option delays the preemption effects of decoupled workloads

# and reduces their over-scheduling. Synchronous workloads will still

# have immediate wakeup/sleep latencies.

kernel.sched_wakeup_granularity_ns = 15000000

# If a workload mostly uses anonymous memory and it hits this limit, the

entire

# working set is buffered for I/O, and any more write buffering would

require

# swapping, so it's time to throttle writes until I/O can catch up.

Workloads

# that mostly use file mappings may be able to use even higher values.

#

# Oracle specific tunings

vm.swappiness = 1

vm.dirty_background_ratio = 3

vm.dirty_ratio = 80

vm.dirty_expire_centisecs = 500

vm.dirty_writeback_centisecs = 100

kernel.shmmax = 4398046511104

kernel.shmall = 1073741824

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

fs.file-max = 6815744

fs.aio-max-nr = 1048576

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048576

kernel.panic_on_oops = 1

    1. tuned.confg

The following is whats contained in the file /etc/tune-profiles/oracle/tuned.conf.

# Oracle tuned profile

# based on the enterprise-storage profile

[main]

[DiskMonitor]

enabled=False

[DiskTuning]

enabled=False

[NetMonitor]

enabled=False

[NetTuning]

enabled=False

[CPUMonitor]

enabled=False

[CPUTuning]

enabled=False

 

 

  1. 写日志和写数据进程优先级

#!/bin/bash

for i in ` ps -ef|grep ora_lg|grep -v ASM|grep -v grep|cut -c9-15`

do

renice -1 ${i}

done

for i in ` ps -ef|grep ora_dbw|grep -v ASM|grep -v grep|cut -c9-15`

do

renice -1 ${i}

done

猜你喜欢

转载自blog.csdn.net/notbaron/article/details/81113055