Solaris memory leaks due shared memory segments

for nylig havde vi et problem med et af Solaris globale områder, der kører med Oracle/SAP .Normalt bruges systemet til at køre med 40 GB~ til 50 GB~ fri fysisk hukommelse.Men da vi havde en blød hænge , fandt vi, at systemet gør mere Personsøgning til disk og fri fysisk hukommelse gik ned til 6 til 8GB.
vi kørte næsten alle overvågningsværktøjerne for at finde ud af, hvilken proces der bruger hukommelsen, men ikke held .Så endelig havde vi rejst sagen med oracle for at finde årsagen .
systemkonfiguration:
system fysisk hukommelse :256GB
Byt :480GB

pr top,prstat, brugt fysisk hukommelse er næsten omkring 200GB~ .

root@ ~]# sar -r 5 5
SunOS 5.10 Generic_144500-19 sun4u 09/05/2012
16:40:11 freemem freeswap
16:40:16 885031 399256061
16:40:22 883764 399240091
16:40:27 882266 399212586
16:40:33 882487 399223267
16:40:38 882453 399221275
Average 883193 399230658
root@ ~]# echo "::memstat" | mdb -k
Page Summary Pages MB %Tot
----------- ---------------- ---------------- ----
Kernel 1696877 13256 5%
Anon 24796106 193719 75%
Exec and libs 150104 1172 0%
Page cache 5814314 45424 18%
Free (cachelist) 437928 3421 1%
Free (freelist) 79348 619 0%
Total 32974677 257614
Physical 32952777 257443

endelig fandt Oracle kernel engineer, at delte hukommelsessegmenter blev forbrugt 103 GB fysisk hukommelse. I den 35 GB hukommelse, der blev brugt af ugyldigt hukommelsessegment, hvor ingen proces brugte det .

# ipcs -ZmA |awk '{x=x+} END {print x}'
111073374219

konvertering til GB

#bc
111073374219/1024/1024/1024
103.44514084886759519577

han fandt, at der er et par delte hukommelsessegmenter, som ikke er i brug, men holder hukommelsespladsen.

# ipcs -mA |grep myora1
T ID KEY MODE OWNER GROUP CREATOR CGROUP NATTCH SEGSZ CPID LPID ATIME DTIME CTIME ISMATTCH
m 19777443 0x8795c49c --rw-rw---- myora1 db myora1 db 1220 24576 23178 21487 9:15:48 9:16:07 14:15:49 1220
m 19777472 0 --rw-rw---- myora1 db myora1 db 1220 34292629504 23178 21487 9:15:48 9:16:07 14:15:58 1220
m 20331903 0 --rw-rw---- myora1 db myora1 db 1220 201326592 23178 21487 9:15:48 9:16:07 14:16:47 1220
m 83886120 0 --rw-rw---- myora1 db myora1 db 0 34292629504 24490 24490 9:56:37 9:56:37 9:56:09 0
m 83886125 0 --rw-rw---- myora1 db myora1 db 0 201326592 24490 24490 9:56:09 9:56:37 9:56:09 0

delt hukommelsessegment 83886120 forbrugt 34gb & 83886125 forbrugt 200MB, hvor der ikke er nogen proces bruger det .Fremhævet felt vil forklare mere. De første tre segmenter er gyldige, da der er så mange processer, der brugte det(1220), og de sidste to linjer med delte hukommelsessegmenter blev ikke brugt af nogen proces. (0)

NATTCH (a,a,o)

antallet af processer knyttet til det tilknyttede delte hukommelsessegment.

ISMATTCH (a,i)
antallet af ISM er knyttet til de tilknyttede delte hukommelsessegmenter.

så efter at have fået bekræftelsen fra databaseteamet, har vi fjernet det ugyldige delte hukommelsessegment ved hjælp af nedenstående kommando .
# ipcrm -m 83886120
# ipcrm -m 83886125

efter at have fjernet det, system tilbage til normal og bytte reduceret parti og fik næsten 50 GB fri fysisk hukommelse .

Tak fordi du læste denne artikel.Efterlad en kommentar ,hvis du er i tvivl, Jeg vender tilbage til dig så hurtigt som muligt.

Leave a Reply

Din e-mailadresse vil ikke blive publiceret.