سؤال

Doing an export of a number of users causes high CPU and I/O usage. I can mitigate the effects of the CPU usage using Resource Manager and setting the export session to a low priority group, but how can I limit the disk I/O? I am not running the operation in parallel and have already read Oracle's Datapump Performance documentation. Is there anything else I can do?

This is on Windows 2008 R2 x64.

هل كانت مفيدة؟

المحلول

Send it over the network

While extensive searching found no way to limit disk io natively (and serverFault will probably have more details on that) a "natural" way of limiting IO is to send the output directly across the network without ever touching the local disk. This then allows you to take advantage of all the network IO throttling resources out there. (If you want to be really sneaky, try to set up the network resource on the local machine, but that may be an overly-cute solution.)

نصائح أخرى

De-tune the datapump

The docs list a number of methods for improving the performance of a data pump, including suggested alterations to the SGA, and considerations about encryption and compression. By inverting this advice, especially about compression and SGA, and then limiting CPU usage, IO usages may be reduced as a consequence.

My problem turned out to be specifically with the initial stages of the export before it starts writing to the export files. I upgraded to 11.2.0.2 from 11.2.0.1, switched to statistical estimating and throttled the method to the lowest resource manager group and that seemed to solve the problem. The other answers to this question may be useful for others.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى dba.stackexchange
scroll top