High I/O and CPU waits during Oracle data pump expdp is slow / hung


If you run into a situation that the data pump is taking such a long time /hanging and consuming all resources (meory, CPU, I/O wait, etc.), you should check your paging/swaping related parameters in /etc/sysctl.conf.

Example:


- oracle: vmstat 10 10
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
2 14 930336 673184 84964 51242600 0 0 273 113 0 0 2 4 93 1 0
27 15 930328 628948 85332 51281352 1 0 7753 3403 1448 16757 1 69 18 11 0
54 16 930340 628852 83536 51264948 11 0 342 1832 1398 14427 0 98 0 1 0
34 18 930232 641848 85048 51256972 24 1 2177 2033 1989 21538 0 89 4 7 0
0 14 929916 659768 85684 51253524 37 7 1527 1642 1480 15844 1 75 12 12 0
6 14 929944 629840 86188 51273780 381 1 4967 3622 2092 24876 1 58 25 16 0
10 14 930120 629916 85744 51275736 3 0 4663 3254 1568 18072 1 61 20 18 0
19 14 930352 629204 83520 51254128 11 22 363 1594 1267 15785 0 79 8 13 0
9 15 930436 667332 84216 51242292 18 23 921 1606 1525 14833 0 96 2 2 0
36 17 930396 629960 86064 51274904 366 1 5928 2564 2142 24199 1 28 46 25 0

So we added the below settings to the /etc/sysctl.conf file to reduce the paging/swapping.  After making the changes in /etc/sysctl.conf, the data pump job was finished 1 hr (instead of 12 hrs, hang, and consumed server resources).  You should work with your system administrator or Redhat Support to make sure these parameters are appropriate for your enviornment and monitor the results.

#BEGIN#
#Reduce swapping:
vm.swappiness = 10
#Maximum percentage of active memory that can have dirty pages:
vm.dirty_background_ratio=3
#Maximum percentage of total memory that can have dirty pages:
vm.dirty_ratio=15
#How long data can be in page cache before being expired:
vm.dirty_expire_centisecs=500
#How often pdflush is activated to clean dirty pages:
vm.dirty_writeback_centisecs=100
#END#


No comments:

Post a Comment