úniky paměti Solaris kvůli segmentům sdílené paměti

Nedávno jsme měli problém s jednou z globální zóny Solaris, která běží s Oracle / SAP .Normálně systém používá ke spuštění s 40GB~ až 50GB~ volné fyzické paměti.Ale když jsme měli měkké zavěšení, zjistili jsme, že systém dělá více stránkování na disk a volná fyzická paměť klesla na 6 na 8GB.
Spustili jsme téměř všechny monitorovací nástroje, abychom zjistili, který proces spotřebovává paměť, ale žádné štěstí .Nakonec jsme vznesli případ s oracle, abychom našli hlavní příčinu .
konfigurace systému:
fyzická paměť systému: 256GB
Swap: 480GB

podle vrcholu,prstat, použitá fyzická paměť je téměř kolem 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

nakonec Oracle kernel engineer zjistil, že segmenty sdílené paměti byly spotřebovány 103 GB fyzické paměti. V té 35GB paměti používané neplatným segmentem paměti, kde ji nepoužíval žádný proces .

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

převod na GB

#bc
111073374219/1024/1024/1024
103.44514084886759519577

zjistil, že existuje několik segmentů sdílené paměti, které se nepoužívají, ale drží paměťový prostor.

# 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

segment sdílené paměti 83886120 spotřeboval 34 GB & 83886125 spotřeboval 200 MB tam, kde není žádný proces, používají jej .Zvýrazněné pole vysvětlí více. První tři segmenty jsou platné, protože existuje tolik procesů, které je používaly (1220), a poslední dva řádky segmentů sdílené paměti nepoužívaly žádný proces. (0)

NATTCH (a,A,o)

počet procesů připojených k přidruženému segmentu sdílené paměti.

ISMATTCH (a,i)
počet ISM se připojuje k přidruženým segmentům sdílené paměti.

takže po obdržení potvrzení od databázového týmu jsme odstranili neplatný segment sdílené paměti pomocí níže uvedeného příkazu .
# ipcrm -m 83886120
# ipcrm -m 83886125

po jeho odstranění se systém vrátil do normálu a vyměnil se a získal téměř 50 GB volné fyzické paměti .

děkuji za přečtení tohoto článku.Prosím zanechat komentář, pokud máte nějaké pochybnosti, vrátím se k vám co nejdříve.

Leave a Reply

Vaše e-mailová adresa nebude zveřejněna.