Some observation of process memory usage
# top
PID USER PR NI VIRT RES SHR SWAP CODE DATA S %CPU %MEM TIME+ COMMAND
11989 oracle 15 0 626m 28m 27m 597m 70m 2040 S 0 1.6 0:02.68 oracle
11999 oracle 15 0 613m 43m 40m 569m 70m 2280 S 0 2.5 0:01.35 oracle
11987 oracle 15 0 613m 80m 77m 532m 70m 3596 S 0 4.6 0:00.87 oracle
11997 oracle 15 0 612m 29m 26m 583m 70m 2112 S 0 1.7 0:01.65 oracle
11993 oracle 15 0 612m 61m 59m 551m 70m 2068 S 0 3.5 0:05.12 oracle
12003 oracle 18 0 611m 8924 7552 602m 70m 2200 S 0 0.5 0:00.00 oracle
11975 oracle 15 0 611m 9.9m 8932 601m 70m 2652 S 0 0.6 0:00.11 oracle
12005 oracle 18 0 611m 8504 7420 603m 70m 2652 S 0 0.5 0:00.00 oracle
12007 oracle 18 0 611m 8592 7488 603m 70m 2652 S 0 0.5 0:00.01 oracle
12011 oracle 18 0 611m 8592 7484 603m 70m 2652 S 0 0.5 0:00.00 oracle
12017 oracle 18 0 611m 8596 7492 603m 70m 2652 S 0 0.5 0:00.00 oracle
11991 oracle 16 0 611m 17m 15m 594m 70m 2048 S 0 1.0 0:00.37 oracle
11977 oracle 15 0 610m 8716 7820 602m 70m 2040 S 0 0.5 0:00.08 oracle
11979 oracle 15 0 610m 18m 17m 592m 70m 2040 S 0 1.1 0:00.07 oracle
11995 oracle 18 0 610m 13m 12m 597m 70m 2040 S 0 0.8 0:00.01 oracle
12001 oracle 18 0 610m 13m 12m 597m 70m 2040 S 0 0.8 0:00.55 oracle
12381 oracle 15 0 610m 9916 8984 601m 70m 2040 S 0 0.6 0:00.01 oracle
12910 oracle 18 0 610m 10m 9924 600m 70m 2040 S 0 0.6 0:00.00 oracle
12912 oracle 18 0 610m 9176 8216 602m 70m 2040 S 0 0.5 0:00.00 oracle
# ipcs -m
key shmid owner perms bytes nattch status
0×880f3334 131075 oracle 640 557842432 19
# /proc/12005/maps
20000000-41400000 rwxs 00000000 00:09 131075 /SYSV880f3334 (deleted)
# /proc/12005/smaps
20000000-41400000 rwxs 00000000 00:09 131075 /SYSV880f3334 (deleted)
Size: 544768 kB
Rss: 452 kB
Shared_Clean: 272 kB
Shared_Dirty: 168 kB
Private_Clean: 0 kB
Private_Dirty: 12 kB
Swap: 0 kB
1. attach上的shm没有记在RES中,理所当然的记在了VIRT中。VIRT = RES + SWAP,其实没有SWAP这一说,只是这么一减。
2. CODE就是代码,物理文件决定,明显与RES没什么关系。
3. DATA是已初始化数据,物理文件决定,也与RES没什么关系。
这个DB到底吃了多少内存,可以从SUM(RES) + SHM [ + CODE ]? 来算吗?偶现在也迷糊。。。