Skip to Main Content

Breadcrumb

DNFS_BATCH_SIZE

NetApp cDOT und Oracle dNFS - Empfehlung für DNFS_BATCH_SIZE

Im NetApp Technical Report "Oracle Databases on Data ONTAP" von Jeffrey Steiner (TR-3633, Nov 2015) findet man die Empfehlung die seit Oracle 11.2.0.4 existierende DNFS_BATCH_SIZE (Instance Parameter) auf 128 zu setzen. Der Parameter sorgt dafür, dass ein Oracle Prozess nicht mehr als 128 Blöcke auf einmal von der Storage "anfragt" und ist nur dann relevant, wenn man Datenbanken mit vielen Full Table Scan Abfragen oder Parallel Query nutzt (also bei Heavy Data Warehouse). Dadurch kann man verhindern, dass zu viele gleichzeitige "IO Requests" bei der NetApp Storage eintreffen und bei den meisten Anwendungen wird es auch keine negative Auswirkung haben. Von Seiten Oracle gibt es dazu eine MySupport Note, dass dieses Verhalten einen Bug darstellt: Bug 13647945 - DNFS batch size needs to be managed to avoid overwhelming the server (Doc ID 13647945.8) - die Lösung ist die Einführung des Parameters DNFS_BATCH_SIZE. Leider hat Oracle dabei nicht weit genug gedacht/getestet. Gerade IO Calibrate, dass man zum Ausloten der Storage Performance nutzt und unter anderem von AutoDOP Feature benötigt wird, bricht mit einem Fehler ab...

IO Calibrate Fehler wenn DNFS_BATCH_SIZE gesetzt wird

In der MySupport Note "DBMS_RESOURCE_MANAGER.CALIBRATE_IO fails with error ORA-56719 In 11.2.0.4 (Doc ID 1916926.1)" wird genau beschrieben, dass der Fehler beim IO Calibrate auf diesen neuen Parameter zurückzuführen ist.

Errors in file /u00/app/oracle/diag/rdbms/smobt1_s1/SMOBT1/trace/SMOBT1_cs00_11750.trc:
ORA-56719: Error spawning or communicating with calibration slave
Errors in file /u00/app/oracle/diag/rdbms/smobt1_s1/SMOBT1/trace/SMOBT1_cs03_11762.trc:
ORA-00448: normal completion of background process

Was soll man jetzt machen?

Diese Frage ist schwer zu beantworten. Wir haben viele Kunden mit Oracle dNFS und NetApp cDOT und selbst bei einem großen SAP BW hatten wir nicht das Problem, dass die NetApp mit zu vielen IO Requests überlastet wurde. Wir empfehlen daher, den Parameter DNFS_BATCH_SIZE nur dann zu setzen, wenn man mehrere, große DWHs nutzt, oder das Problem hat, dass die NetApp zeitweise überlastet ist.