to check kernel Virtual Memory parameters: cd /proc/sys/vm bash-3.2# ls -l total 0 -rw-r--r-- 1 root root 0 Oct 28 16:10 block_dump -rw-r--r-- 1 root root 0 Oct 28 16:10 dirty_background_bytes -rw-r--r-- 1 root root 0 Oct 28 16:10 dirty_background_ratio -rw-r--r-- 1 root root 0 Oct 28 16:10 dirty_bytes -rw-r--r-- 1 root root 0 Oct 28 16:10 dirty_expire_centisecs -rw-r--r-- 1 root root 0 Oct 28 16:10 dirty_ratio -rw-r--r-- 1 root root 0 Oct 28 16:10 dirty_writeback_centisecs -rw-r--r-- 1 root root 0 Oct 28 16:10 drop_caches -rw-r--r-- 1 root root 0 Oct 28 16:10 flush_mmap_pages -rw-r--r-- 1 root root 0 Oct 28 16:10 hugetlb_shm_group -rw-r--r-- 1 root root 0 Oct 28 16:10 laptop_mode -rw-r--r-- 1 root root 0 Oct 28 16:10 legacy_va_layout -rw-r--r-- 1 root root 0 Oct 28 16:10 lowmem_reserve_ratio -rw-r--r-- 1 root root 0 Oct 28 16:10 max_map_count -rw-r--r-- 1 root root 0 Oct 28 16:10 max_reclaims_in_progress -rw-r--r-- 1 root root 0 Oct 28 16:10 max_writeback_pages -rw-r--r-- 1 root root 0 Oct 28 16:10 min_free_kbytes -rw-r--r-- 1 root root 0 Oct 28 16:10 min_slab_ratio -rw-r--r-- 1 root root 0 Oct 28 16:10 min_unmapped_ratio -rw-r--r-- 1 root root 0 Oct 28 16:10 mmap_min_addr -rw-r--r-- 1 root root 0 Oct 28 16:10 nr_hugepages -r--r--r-- 1 root root 0 Oct 28 16:10 nr_pdflush_threads -rw-r--r-- 1 root root 0 Oct 28 16:10 overcommit_memory -rw-r--r-- 1 root root 0 Oct 28 16:10 overcommit_ratio -rw-r--r-- 1 root root 0 Oct 28 16:10 pagecache -rw-r--r-- 1 root root 0 Oct 28 16:10 page-cluster -rw-r--r-- 1 root root 0 Oct 28 16:10 panic_on_oom -rw-r--r-- 1 root root 0 Oct 28 16:10 percpu_pagelist_fraction -rw-r--r-- 1 root root 0 Oct 28 16:10 swappiness -rw-r--r-- 1 root root 0 Oct 28 16:10 swap_token_timeout -rw-r--r-- 1 root root 0 Oct 28 16:10 topdown_allocate_fast -rw-r--r-- 1 root root 0 Oct 28 16:10 vfs_cache_pressure -rw-r--r-- 1 root root 0 Oct 28 16:10 vm_devzero_optimized -rw-r--r-- 1 root root 0 Oct 28 16:10 zone_reclaim_interval -rw-r--r-- 1 root root 0 Oct 28 16:10 zone_reclaim_mode I changed values as such: echo 8 > dirty_background_ratio there is also the /etc/sysctl.conf for permanent changes. examples: ## ## SYSTEM MEMORY MANAGEMENT ## ## # improve Swappiness vm.swappiness = 0 vm.dirty_ratio = 10 vm.dirty_background_ratio = 5 #no overcommit for memory vm.overcommit_memory = 2 a great site for explanation is: http://www.mjmwired.net/kernel/Documentation/sysctl/vm.txt and https://klaver.it/linux/sysctl.conf /sbin/sysctl vm.swappiness vm.swappiness = 30 bash-3.2# /sbin/sysctl -w vm.swappiness=40 vm.swappiness = 40 bash-3.2# /sbin/sysctl vm.swappiness vm.swappiness = 40 another is the blockdev parameter bash-3.2# /sbin/blockdev --getra /dev/sdb 256 to set run: bash-3.2# /sbin/blockdev --setra 2048 /dev/sdb bash-3.2# /sbin/blockdev --getra /dev/sdb 2048 Some Oracle tweaks My configuration : Not Using AMM with ASM and database /etc/sysctl.conf : vm.nr_hugepages= 12288 -- page size 2MB => 24 GB vm.hugetlb_shm_group=1300 --id dba, be careful if it's a different user between ASM and Database kernel.shmmax=25769803776 -- => 24 GB kernel.shmall=6291456 -- page size 4KB =>24 GB /etc/security/limits.conf : memlock=25165824 -- KB => 24 GB /etc/profile ulimit -u 16384 -n 65536 -l 25165824 To check you are using Huge Page grep Huge /proc/meminfo