Benutzer-Werkzeuge

Webseiten-Werkzeuge


linux:memory_oracle_verbrauch

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
linux:memory_oracle_verbrauch [2014/03/06 17:08]
gpipperr [Standard Befehle]
linux:memory_oracle_verbrauch [2014/10/31 13:40] (aktuell)
gpipperr [Quellen]
Zeile 1: Zeile 1:
 +====== Speicherbedarf der DB Prozesse in Linux ermitteln ======
  
 +
 +====== Prozessliste auswerten ======
 +Für welche Datenbank sind wieviele Anwenderprozesse gestartet
 +<code bash>
 + ps -Af | grep oracle | awk '{ print $8 }' | sort | uniq -c | sort -nr
 +
 +    118 oraclePIST
 +     87 oracleMYDB
 +     79 oracleMDG
 +     41 oracleBKGJ
 +     40 oracleIZTH
 +     37 oracleORCT
 +      9 oracleCONPT
 +      3 oracleZOI
 +      3 oracleTET
 +      2 oracleME
 +      2 oracleDERD
 +
 +</code>
 +
 +====== Standard Befehle ======
 +Einfache Standardbefehle unter linux um Load, Speicherverbrauch, Swap Verhalten zu überwachen
 +
 +  * utime
 +  * procinfo
 +  * w
 +  * top
 +  * free -m
 +  * pmap -d <pid> 
 +  * vmstat -s
 +
 +Speicher Bausteine auswerten
 +
 +  * dmidecode 
 +==== pmap ====
 +
 +Beispiel :  pmap -d \\
 +Ausgabe gekürzt:
 +<code>
 +20729
 +20729:   oracleCODFG (LOCAL=NO)
 +Address           Kbytes Mode  Offset           Device    Mapping
 +0000000000400000   92916 r-x-- 0000000000000000 068:00001 oracle
 +0000000005fbc000    6532 rw--- 0000000005abc000 068:00001 oracle
 +000000000661d000     644 rwx-- 000000000661d000 000:00000   [ anon ]
 +0000000060000000 1026048 rw-s- 0000000000000000 000:00006   [ shmid=0x270002 ]
 +0000002a95556000      84 r-x-- 0000000000000000 068:00001 ld-2.3.3.so
 +0000002a9556b000       4 rw--- 0000002a9556b000 000:00000   [ anon ]
 +0000002a9566a000      12 rw--- 0000000000014000 068:00001 ld-2.3.3.so
 +0000002a9566d000     148 r-x-- 0000000000000000 068:00001 libskgxp10.so
 +0000002a95692000    1024 ----- 0000000000025000 068:00001 libskgxp10.so
 +0000002a95792000       8 rw--- 0000000000025000 068:00001 libskgxp10.so
 +0000002a95794000       4 rw--- 0000002a95794000 000:00000   [ anon ]
 +.....
 +0000002a97c2b000    1020 ----- 0000000000009000 068:00001 libnss_files.so.2
 +0000002a97d2a000       8 rw--- 0000000000008000 068:00001 libnss_files.so.2
 +0000007fbffe4000     112 rwx-- 0000007fbffe4000 000:00000   [ stack ]
 +ffffffffff600000    8192 ----- 0000000000000000 000:00000   [ anon ]
 +mapped: 1174036K    writeable/private: 11884K    shared: 1026048K
 +</code>
 +
 +Jede "Shared Library" wird zweimal angeführt. \\
 +Einmal für das Codesegment (Mode r-x--) und einmal für das Datensegment (Mode rw---) der Library.\\
 +\\
 +Die Zeile "0000000060000000 **1026048** rw-s- 0000000000000000 000:00006   [ shmid=0x270002 ]" 
 +zeigt den Verweis auf die SGA (SGA_TARGET mit 1000M eingestellt)  ? \\
 +\\
 +Laut letzer Zeile "mapped: 1174036K    **writeable/private: 11884K**    shared: 1026048K" verwendet der Prozess writeable/private 11884K Speicher für sich selbst\\
 +\\
 +[ anon ] = Anonymous Memory (Anon) siehe manpage wie  http://compute.cnr.berkeley.edu/cgi-bin/man-cgi?pmap+1\\
 +Quelle: http://wiki.debianforum.de/LinuxSpeichermanagement
 +\\
 +alles zusammenzählen:
 +<code>
 +ps -Af | grep CODA | awk '{print $2}'
 +pmap -d | grep writeable/private | awk '{print $4}'
 +</code>
 +
 +==== nmon ====
 +Ähnlich wie top, aber deutlich mächtiger\\
 +Eigentlich für IBM Aix entworfen, gibt es aber auch für Linux \\
 +siehe http://www.ibm.com/developerworks/aix/library/au-analyze_aix/ \\
 +
 +Download für Linux unter http://nmon.sourceforge.net/pmwiki.php
 +\\
 +auf Oracle Enterprise Linux v5.5 die OpenSuse11 Variante verwenden
 +
 +
 +====== ORA-00845: MEMORY_TARGET not supported on this system ======
 +
 +ORA-00845 oder Eintrag in Alert Log
 +<code>
 +WARNING: You are trying to use the MEMORY_TARGET feature. This feature requires the /dev/shm file system to be mounted for at least 4093640704 bytes. /dev/shm is either not mounted or is mounted with available space less than this size. Please fix this so that MEMORY_TARGET can work as expected. Current available is 2279227392 and used is 4163223552 bytes. Ensure that the mount point is /dev/shm for this directory.
 +memory_target needs larger /dev/shm
 +</code>
 +
 +Ursache:
 +
 +  * if the shared memory which is mapped to /dev/shm directory is less than the size of MEMORY_TARGET or MEMORY_MAX_TARGET
 +  * If the shared memory is not mapped to /dev/shm directory
 +
 +
 +Überprüfen:
 +<code>
 +$ df -h /dev/shm
 +Filesystem            Size  Used Avail Use% Mounted on
 +tmpfs                 6.0G  3.9G  2.2G  65% /dev/shm
 +</code>
 +Hinzufügen als root
 +<code>
 +mount -t tmpfs shmfs -o size=30g /dev/shm
 +</code>
 +oder vergrößern mit
 +<code>
 +mount -o remount,size=30G /dev/shm
 +</code>
 +
 +in fstab eintragen:
 +<code>
 +tmpfs                   /dev/shm                tmpfs   size=30g        0 0
 +</code>
 +
 +====== Quellen ======
 +  * http://www.teamquest.com/resources/gunther/display/5/index.htm
 +  * http://blog.tanelpoder.com/2007/08/21/oracle-11g-internals-part-1-automatic-memory-management/
 +
 +  * http://careers.directi.com/display/tu/Understanding+Processes+in+Linux
"Autor: Gunther Pipperr"
linux/memory_oracle_verbrauch.txt · Zuletzt geändert: 2014/10/31 13:40 von gpipperr