这些内存区域来自Linux进程?

时间:2011-07-04 06:30:05

标签: linux memory

我发现我的一个进程(~90个线程)使用> 8G内存,我认为它不需要这么大。

因此,我读了/proc/{pid}/maps/proc/{pid}/smapspstack {pid}。我想知道那些大的 63M + 508K 区域是如何产生的,以及它们的用途是什么,我可以通过某种方式消除它们来减少我的内存使用量吗?

我发现这些地区几乎分为三类:

  1. 4xxx000-4xxxx000:线程堆栈?
  2. 313xxxx000-313xxxx000:lib文本和数据?
  3. 2xxxxxxxx000-2xxxxxxxx000:许多令人困惑的(64M+...+63M+508K)块。这种区域的数量非常接近线程的数量。这些与线程相关的大区域也是如此吗?
  4. 以下是合并/proc/{pid}/mapspstack {pid} | grep Thread的结果后的结果:

    (如果*Thread ?? (Thread 0x@@@@@@@@@@ (LWP !!!!))*位于此区域内,我将0x@@@@@@@@放在每个区域的末尾(我猜@@@@是线程堆栈基础,因此该区域是该线程的区域栈。)

    Region   0:     18M, 00400000-01675000 r-xp 00000000 08:02 5401                               /mybinary
    Region   1:    236K, 01875000-018b0000 rw-p 01275000 08:02 5401                               /mybinary
    Region   2:    456K, 018b0000-01922000 rw-p 018b0000 00:00 0 
    Region   3:    741M, 11b46000-4006c000 rw-p 11b46000 00:00 0                                  [heap]
    Region   4:      4K, 40084000-40085000 ---p 40084000 00:00 0 
    Region   5:    512K, 40085000-40105000 rw-p 40085000 00:00 0 *Thread 53 (Thread 0x40104940 (LWP 1281))*
    Region   6:      4K, 40222000-40223000 ---p 40222000 00:00 0 
    Region   7:    512K, 40223000-402a3000 rw-p 40223000 00:00 0 *Thread 57 (Thread 0x402a2940 (LWP 1277))*
    Region   8:      4K, 40338000-40339000 ---p 40338000 00:00 0 
    Region   9:    512K, 40339000-403b9000 rw-p 40339000 00:00 0 *Thread 52 (Thread 0x403b8940 (LWP 1282))*
    Region  10:      4K, 403b9000-403ba000 ---p 403b9000 00:00 0 
    Region  11:      1M, 403ba000-404ba000 rw-p 403ba000 00:00 0 *Thread 31 (Thread 0x404b9940 (LWP 1303))*
    Region  12:      4K, 404ba000-404bb000 ---p 404ba000 00:00 0 
    Region  13:      1M, 404bb000-405bb000 rw-p 404bb000 00:00 0 *Thread 2 (Thread 0x405ba940 (LWP 26786))*
    Region  14:      4K, 40759000-4075a000 ---p 40759000 00:00 0 
    Region  15:    512K, 4075a000-407da000 rw-p 4075a000 00:00 0 *Thread 84 (Thread 0x407d9940 (LWP 1239))*
    Region  16:      4K, 407da000-407db000 ---p 407da000 00:00 0 
    Region  17:    512K, 407db000-4085b000 rw-p 407db000 00:00 0 *Thread 51 (Thread 0x4085a940 (LWP 1283))*
    Region  18:      4K, 4085b000-4085c000 ---p 4085b000 00:00 0 
    Region  19:      1M, 4085c000-4095c000 rw-p 4085c000 00:00 0 *Thread 50 (Thread 0x4095b940 (LWP 1284))*
    Region  20:      4K, 4095c000-4095d000 ---p 4095c000 00:00 0 
    Region  21:    512K, 4095d000-409dd000 rw-p 4095d000 00:00 0 *Thread 32 (Thread 0x409dc940 (LWP 1302))*
    Region  22:      4K, 409dd000-409de000 ---p 409dd000 00:00 0 
    Region  23:      1M, 409de000-40ade000 rw-p 409de000 00:00 0 *Thread 24 (Thread 0x40add940 (LWP 26764))*
    Region  24:      4K, 40b9f000-40ba0000 ---p 40b9f000 00:00 0 
    Region  25:      1M, 40ba0000-40ca0000 rw-p 40ba0000 00:00 0 *Thread 83 (Thread 0x40c9f940 (LWP 1240))*
    Region  26:      4K, 40ca0000-40ca1000 ---p 40ca0000 00:00 0 
    Region  27:      1M, 40ca1000-40da1000 rw-p 40ca1000 00:00 0 *Thread 82 (Thread 0x40da0940 (LWP 1241))*
    Region  28:      4K, 40da1000-40da2000 ---p 40da1000 00:00 0 
    Region  29:      1M, 40da2000-40ea2000 rw-p 40da2000 00:00 0 *Thread 30 (Thread 0x40ea1940 (LWP 1304))*
    Region  30:      4K, 40eea000-40eeb000 ---p 40eea000 00:00 0 
    Region  31:      1M, 40eeb000-40feb000 rw-p 40eeb000 00:00 0 *Thread 87 (Thread 0x40fea940 (LWP 1235))*
    Region  32:      4K, 40feb000-40fec000 ---p 40feb000 00:00 0 
    Region  33:    512K, 40fec000-4106c000 rw-p 40fec000 00:00 0 *Thread 47 (Thread 0x4106b940 (LWP 1287))*
    Region  34:      4K, 4106c000-4106d000 ---p 4106c000 00:00 0 
    Region  35:      1M, 4106d000-4116d000 rw-p 4106d000 00:00 0 *Thread 23 (Thread 0x4116c940 (LWP 26765))*
    Region  36:      4K, 41218000-41219000 ---p 41218000 00:00 0 
    Region  37:      1M, 41219000-41319000 rw-p 41219000 00:00 0 *Thread 81 (Thread 0x41318940 (LWP 1242))*
    Region  38:      4K, 41319000-4131a000 ---p 41319000 00:00 0 
    Region  39:    512K, 4131a000-4139a000 rw-p 4131a000 00:00 0 *Thread 62 (Thread 0x41399940 (LWP 1263))*
    Region  40:      4K, 4139a000-4139b000 ---p 4139a000 00:00 0 
    Region  41:      1M, 4139b000-4149b000 rw-p 4139b000 00:00 0 *Thread 61 (Thread 0x4149a940 (LWP 1264))*
    Region  42:      4K, 4154b000-4154c000 ---p 4154b000 00:00 0 
    Region  43:      1M, 4154c000-4164c000 rw-p 4154c000 00:00 0 *Thread 71 (Thread 0x4164b940 (LWP 1252))*
    Region  44:      4K, 4168b000-4168c000 ---p 4168b000 00:00 0 
    Region  45:      1M, 4168c000-4178c000 rw-p 4168c000 00:00 0 *Thread 89 (Thread 0x4178b940 (LWP 1233))*
    Region  46:      4K, 4178c000-4178d000 ---p 4178c000 00:00 0 
    Region  47:      1M, 4178d000-4188d000 rw-p 4178d000 00:00 0 *Thread 88 (Thread 0x4188c940 (LWP 1234))*
    Region  48:      4K, 4188d000-4188e000 ---p 4188d000 00:00 0 
    Region  49:      1M, 4188e000-4198e000 rw-p 4188e000 00:00 0 *Thread 70 (Thread 0x4198d940 (LWP 1253))*
    Region  50:      4K, 4198e000-4198f000 ---p 4198e000 00:00 0 
    Region  51:      1M, 4198f000-41a8f000 rw-p 4198f000 00:00 0 *Thread 69 (Thread 0x41a8e940 (LWP 1254))*
    Region  52:      4K, 41a8f000-41a90000 ---p 41a8f000 00:00 0 
    Region  53:      1M, 41a90000-41b90000 rw-p 41a90000 00:00 0 *Thread 68 (Thread 0x41b8f940 (LWP 1255))*
    Region  54:      4K, 41b90000-41b91000 ---p 41b90000 00:00 0 
    Region  55:      1M, 41b91000-41c91000 rw-p 41b91000 00:00 0 *Thread 67 (Thread 0x41c90940 (LWP 1256))*
    Region  56:      4K, 41c91000-41c92000 ---p 41c91000 00:00 0 
    Region  57:    512K, 41c92000-41d12000 rw-p 41c92000 00:00 0 *Thread 66 (Thread 0x41d11940 (LWP 1257))*
    Region  58:      4K, 41d30000-41d31000 ---p 41d30000 00:00 0 
    Region  59:    512K, 41d31000-41db1000 rw-p 41d31000 00:00 0 *Thread 86 (Thread 0x41db0940 (LWP 1237))*
    Region  60:      4K, 41db1000-41db2000 ---p 41db1000 00:00 0 
    Region  61:    512K, 41db2000-41e32000 rw-p 41db2000 00:00 0 *Thread 85 (Thread 0x41e31940 (LWP 1238))*
    Region  62:      4K, 41e32000-41e33000 ---p 41e32000 00:00 0 
    Region  63:      1M, 41e33000-41f33000 rw-p 41e33000 00:00 0 *Thread 64 (Thread 0x41f32940 (LWP 1261))*
    Region  64:      4K, 41f33000-41f34000 ---p 41f33000 00:00 0 
    Region  65:    512K, 41f34000-41fb4000 rw-p 41f34000 00:00 0 *Thread 63 (Thread 0x41fb3940 (LWP 1262))*
    Region  66:      4K, 41fb7000-41fb8000 ---p 41fb7000 00:00 0 
    Region  67:      1M, 41fb8000-420b8000 rw-p 41fb8000 00:00 0 *Thread 80 (Thread 0x420b7940 (LWP 1243))*
    Region  68:      4K, 420b8000-420b9000 ---p 420b8000 00:00 0 
    Region  69:      1M, 420b9000-421b9000 rw-p 420b9000 00:00 0 *Thread 79 (Thread 0x421b8940 (LWP 1244))*
    Region  70:      4K, 421b9000-421ba000 ---p 421b9000 00:00 0 
    Region  71:      1M, 421ba000-422ba000 rw-p 421ba000 00:00 0 *Thread 78 (Thread 0x422b9940 (LWP 1245))*
    Region  72:      4K, 422ba000-422bb000 ---p 422ba000 00:00 0 
    Region  73:      1M, 422bb000-423bb000 rw-p 422bb000 00:00 0 *Thread 77 (Thread 0x423ba940 (LWP 1246))*
    Region  74:      4K, 423bb000-423bc000 ---p 423bb000 00:00 0 
    Region  75:      1M, 423bc000-424bc000 rw-p 423bc000 00:00 0 *Thread 76 (Thread 0x424bb940 (LWP 1247))*
    Region  76:      4K, 424bc000-424bd000 ---p 424bc000 00:00 0 
    Region  77:      1M, 424bd000-425bd000 rw-p 424bd000 00:00 0 *Thread 75 (Thread 0x425bc940 (LWP 1248))*
    Region  78:      4K, 425bd000-425be000 ---p 425bd000 00:00 0 
    Region  79:      1M, 425be000-426be000 rw-p 425be000 00:00 0 *Thread 74 (Thread 0x426bd940 (LWP 1249))*
    Region  80:      4K, 426be000-426bf000 ---p 426be000 00:00 0 
    Region  81:      1M, 426bf000-427bf000 rw-p 426bf000 00:00 0 *Thread 73 (Thread 0x427be940 (LWP 1250))*
    Region  82:      4K, 427bf000-427c0000 ---p 427bf000 00:00 0 
    Region  83:      1M, 427c0000-428c0000 rw-p 427c0000 00:00 0 *Thread 72 (Thread 0x428bf940 (LWP 1251))*
    Region  84:      4K, 428c0000-428c1000 ---p 428c0000 00:00 0 
    Region  85:      1M, 428c1000-429c1000 rw-p 428c1000 00:00 0 *Thread 65 (Thread 0x429c0940 (LWP 1260))*
    Region  86:      4K, 429c1000-429c2000 ---p 429c1000 00:00 0 
    Region  87:      1M, 429c2000-42ac2000 rw-p 429c2000 00:00 0 *Thread 60 (Thread 0x42ac1940 (LWP 1265))*
    Region  88:      4K, 42ac2000-42ac3000 ---p 42ac2000 00:00 0 
    Region  89:      1M, 42ac3000-42bc3000 rw-p 42ac3000 00:00 0 *Thread 59 (Thread 0x42bc2940 (LWP 1266))*
    Region  90:      4K, 42bc3000-42bc4000 ---p 42bc3000 00:00 0 
    Region  91:    512K, 42bc4000-42c44000 rw-p 42bc4000 00:00 0 *Thread 58 (Thread 0x42c43940 (LWP 1267))*
    Region  92:      4K, 42c44000-42c45000 ---p 42c44000 00:00 0 
    Region  93:      1M, 42c45000-42d45000 rw-p 42c45000 00:00 0 *Thread 56 (Thread 0x42d44940 (LWP 1278))*
    Region  94:      4K, 42d45000-42d46000 ---p 42d45000 00:00 0 
    Region  95:      1M, 42d46000-42e46000 rw-p 42d46000 00:00 0 *Thread 55 (Thread 0x42e45940 (LWP 1279))*
    Region  96:      4K, 42e46000-42e47000 ---p 42e46000 00:00 0 
    Region  97:      1M, 42e47000-42f47000 rw-p 42e47000 00:00 0 *Thread 54 (Thread 0x42f46940 (LWP 1280))*
    Region  98:      4K, 42f47000-42f48000 ---p 42f47000 00:00 0 
    Region  99:      1M, 42f48000-43048000 rw-p 42f48000 00:00 0 *Thread 49 (Thread 0x43047940 (LWP 1285))*
    Region 100:      4K, 43048000-43049000 ---p 43048000 00:00 0 
    Region 101:      1M, 43049000-43149000 rw-p 43049000 00:00 0 *Thread 48 (Thread 0x43148940 (LWP 1286))*
    Region 102:      4K, 43149000-4314a000 ---p 43149000 00:00 0 
    Region 103:      1M, 4314a000-4324a000 rw-p 4314a000 00:00 0 *Thread 46 (Thread 0x43249940 (LWP 1288))*
    Region 104:      4K, 4324a000-4324b000 ---p 4324a000 00:00 0 
    Region 105:      1M, 4324b000-4334b000 rw-p 4324b000 00:00 0 *Thread 45 (Thread 0x4334a940 (LWP 1289))*
    Region 106:      4K, 4334b000-4334c000 ---p 4334b000 00:00 0 
    Region 107:      1M, 4334c000-4344c000 rw-p 4334c000 00:00 0 *Thread 44 (Thread 0x4344b940 (LWP 1290))*
    Region 108:      4K, 4344c000-4344d000 ---p 4344c000 00:00 0 
    Region 109:      1M, 4344d000-4354d000 rw-p 4344d000 00:00 0 *Thread 43 (Thread 0x4354c940 (LWP 1291))*
    Region 110:      4K, 4354d000-4354e000 ---p 4354d000 00:00 0 
    Region 111:      1M, 4354e000-4364e000 rw-p 4354e000 00:00 0 *Thread 42 (Thread 0x4364d940 (LWP 1292))*
    Region 112:      4K, 4364e000-4364f000 ---p 4364e000 00:00 0 
    Region 113:      1M, 4364f000-4374f000 rw-p 4364f000 00:00 0 *Thread 41 (Thread 0x4374e940 (LWP 1293))*
    Region 114:      4K, 4374f000-43750000 ---p 4374f000 00:00 0 
    Region 115:      1M, 43750000-43850000 rw-p 43750000 00:00 0 *Thread 40 (Thread 0x4384f940 (LWP 1294))*
    Region 116:      4K, 43850000-43851000 ---p 43850000 00:00 0 
    Region 117:      1M, 43851000-43951000 rw-p 43851000 00:00 0 *Thread 39 (Thread 0x43950940 (LWP 1295))*
    Region 118:      4K, 43951000-43952000 ---p 43951000 00:00 0 
    Region 119:      1M, 43952000-43a52000 rw-p 43952000 00:00 0 *Thread 38 (Thread 0x43a51940 (LWP 1296))*
    Region 120:      4K, 43a52000-43a53000 ---p 43a52000 00:00 0 
    Region 121:      1M, 43a53000-43b53000 rw-p 43a53000 00:00 0 *Thread 37 (Thread 0x43b52940 (LWP 1297))*
    Region 122:      4K, 43b53000-43b54000 ---p 43b53000 00:00 0 
    Region 123:      1M, 43b54000-43c54000 rw-p 43b54000 00:00 0 *Thread 36 (Thread 0x43c53940 (LWP 1298))*
    Region 124:      4K, 43c54000-43c55000 ---p 43c54000 00:00 0 
    Region 125:      1M, 43c55000-43d55000 rw-p 43c55000 00:00 0 *Thread 35 (Thread 0x43d54940 (LWP 1299))*
    Region 126:      4K, 43d55000-43d56000 ---p 43d55000 00:00 0 
    Region 127:      1M, 43d56000-43e56000 rw-p 43d56000 00:00 0 *Thread 34 (Thread 0x43e55940 (LWP 1300))*
    Region 128:      4K, 43e56000-43e57000 ---p 43e56000 00:00 0 
    Region 129:      1M, 43e57000-43f57000 rw-p 43e57000 00:00 0 *Thread 33 (Thread 0x43f56940 (LWP 1301))*
    Region 130:      4K, 43f57000-43f58000 ---p 43f57000 00:00 0 
    Region 131:      1M, 43f58000-44058000 rw-p 43f58000 00:00 0 *Thread 29 (Thread 0x44057940 (LWP 7344))*
    Region 132:      4K, 44058000-44059000 ---p 44058000 00:00 0 
    Region 133:      1M, 44059000-44159000 rw-p 44059000 00:00 0 *Thread 28 (Thread 0x44158940 (LWP 7345))*
    Region 134:      4K, 44159000-4415a000 ---p 44159000 00:00 0 
    Region 135:      1M, 4415a000-4425a000 rw-p 4415a000 00:00 0 *Thread 27 (Thread 0x44259940 (LWP 7346))*
    Region 136:      4K, 4425a000-4425b000 ---p 4425a000 00:00 0 
    Region 137:      1M, 4425b000-4435b000 rw-p 4425b000 00:00 0 *Thread 26 (Thread 0x4435a940 (LWP 7347))*
    Region 138:      4K, 4435b000-4435c000 ---p 4435b000 00:00 0 
    Region 139:      1M, 4435c000-4445c000 rw-p 4435c000 00:00 0 *Thread 25 (Thread 0x4445b940 (LWP 7348))*
    Region 140:      4K, 4445c000-4445d000 ---p 4445c000 00:00 0 
    Region 141:    512K, 4445d000-444dd000 rw-p 4445d000 00:00 0 *Thread 22 (Thread 0x444dc940 (LWP 26766))*
    Region 142:      4K, 444dd000-444de000 ---p 444dd000 00:00 0 
    Region 143:    512K, 444de000-4455e000 rw-p 444de000 00:00 0 *Thread 21 (Thread 0x4455d940 (LWP 26767))*
    Region 144:      4K, 4455e000-4455f000 ---p 4455e000 00:00 0 
    Region 145:      1M, 4455f000-4465f000 rw-p 4455f000 00:00 0 *Thread 20 (Thread 0x4465e940 (LWP 26768))*
    Region 146:      4K, 4465f000-44660000 ---p 4465f000 00:00 0 
    Region 147:      1M, 44660000-44760000 rw-p 44660000 00:00 0 *Thread 19 (Thread 0x4475f940 (LWP 26769))*
    Region 148:      4K, 44760000-44761000 ---p 44760000 00:00 0 
    Region 149:      1M, 44761000-44861000 rw-p 44761000 00:00 0 *Thread 18 (Thread 0x44860940 (LWP 26770))*
    Region 150:      4K, 44861000-44862000 ---p 44861000 00:00 0 
    Region 151:    512K, 44862000-448e2000 rw-p 44862000 00:00 0 *Thread 17 (Thread 0x448e1940 (LWP 26771))*
    Region 152:      4K, 448e2000-448e3000 ---p 448e2000 00:00 0 
    Region 153:      1M, 448e3000-449e3000 rw-p 448e3000 00:00 0 *Thread 16 (Thread 0x449e2940 (LWP 26772))*
    Region 154:      4K, 449e3000-449e4000 ---p 449e3000 00:00 0 
    Region 155:      1M, 449e4000-44ae4000 rw-p 449e4000 00:00 0 *Thread 15 (Thread 0x44ae3940 (LWP 26773))*
    Region 156:      4K, 44ae4000-44ae5000 ---p 44ae4000 00:00 0 
    Region 157:      1M, 44ae5000-44be5000 rw-p 44ae5000 00:00 0 *Thread 14 (Thread 0x44be4940 (LWP 26774))*
    Region 158:      4K, 44be5000-44be6000 ---p 44be5000 00:00 0 
    Region 159:      1M, 44be6000-44ce6000 rw-p 44be6000 00:00 0 *Thread 13 (Thread 0x44ce5940 (LWP 26775))*
    Region 160:      4K, 44ce6000-44ce7000 ---p 44ce6000 00:00 0 
    Region 161:      1M, 44ce7000-44de7000 rw-p 44ce7000 00:00 0 *Thread 12 (Thread 0x44de6940 (LWP 26776))*
    Region 162:      4K, 44de7000-44de8000 ---p 44de7000 00:00 0 
    Region 163:      1M, 44de8000-44ee8000 rw-p 44de8000 00:00 0 *Thread 11 (Thread 0x44ee7940 (LWP 26777))*
    Region 164:      4K, 44ee8000-44ee9000 ---p 44ee8000 00:00 0 
    Region 165:      1M, 44ee9000-44fe9000 rw-p 44ee9000 00:00 0 *Thread 10 (Thread 0x44fe8940 (LWP 26778))*
    Region 166:      4K, 44fe9000-44fea000 ---p 44fe9000 00:00 0 
    Region 167:      1M, 44fea000-450ea000 rw-p 44fea000 00:00 0 *Thread 9 (Thread 0x450e9940 (LWP 26779))*
    Region 168:      4K, 450ea000-450eb000 ---p 450ea000 00:00 0 
    Region 169:      1M, 450eb000-451eb000 rw-p 450eb000 00:00 0 *Thread 8 (Thread 0x451ea940 (LWP 26780))*
    Region 170:      4K, 451eb000-451ec000 ---p 451eb000 00:00 0 
    Region 171:      1M, 451ec000-452ec000 rw-p 451ec000 00:00 0 *Thread 7 (Thread 0x452eb940 (LWP 26781))*
    Region 172:      4K, 452ec000-452ed000 ---p 452ec000 00:00 0 
    Region 173:      1M, 452ed000-453ed000 rw-p 452ed000 00:00 0 *Thread 6 (Thread 0x453ec940 (LWP 26782))*
    Region 174:      4K, 453ed000-453ee000 ---p 453ed000 00:00 0 
    Region 175:      1M, 453ee000-454ee000 rw-p 453ee000 00:00 0 *Thread 5 (Thread 0x454ed940 (LWP 26783))*
    Region 176:      4K, 454ee000-454ef000 ---p 454ee000 00:00 0 
    Region 177:      1M, 454ef000-455ef000 rw-p 454ef000 00:00 0 *Thread 4 (Thread 0x455ee940 (LWP 26784))*
    Region 178:      4K, 455ef000-455f0000 ---p 455ef000 00:00 0 
    Region 179:      1M, 455f0000-456f0000 rw-p 455f0000 00:00 0 *Thread 3 (Thread 0x456ef940 (LWP 26785))*
    Region 180:    112K, 3138200000-313821c000 r-xp 00000000 08:03 28509165                       /lib64/ld-2.5.so
    Region 181:      4K, 313841b000-313841c000 r--p 0001b000 08:03 28509165                       /lib64/ld-2.5.so
    Region 182:      4K, 313841c000-313841d000 rw-p 0001c000 08:03 28509165                       /lib64/ld-2.5.so
    Region 183:      1M, 3138600000-313874d000 r-xp 00000000 08:03 28509166                       /lib64/libc-2.5.so
    Region 184:      2M, 313874d000-313894d000 ---p 0014d000 08:03 28509166                       /lib64/libc-2.5.so
    Region 185:     16K, 313894d000-3138951000 r--p 0014d000 08:03 28509166                       /lib64/libc-2.5.so
    Region 186:      4K, 3138951000-3138952000 rw-p 00151000 08:03 28509166                       /lib64/libc-2.5.so
    Region 187:     20K, 3138952000-3138957000 rw-p 3138952000 00:00 0 
    Region 188:      8K, 3138a00000-3138a02000 r-xp 00000000 08:03 28509167                       /lib64/libdl-2.5.so
    Region 189:      2M, 3138a02000-3138c02000 ---p 00002000 08:03 28509167                       /lib64/libdl-2.5.so
    Region 190:      4K, 3138c02000-3138c03000 r--p 00002000 08:03 28509167                       /lib64/libdl-2.5.so
    Region 191:      4K, 3138c03000-3138c04000 rw-p 00003000 08:03 28509167                       /lib64/libdl-2.5.so
    Region 192:     88K, 3138e00000-3138e16000 r-xp 00000000 08:03 28509171                       /lib64/libpthread-2.5.so
    Region 193:      1M, 3138e16000-3139015000 ---p 00016000 08:03 28509171                       /lib64/libpthread-2.5.so
    Region 194:      4K, 3139015000-3139016000 r--p 00015000 08:03 28509171                       /lib64/libpthread-2.5.so
    Region 195:      4K, 3139016000-3139017000 rw-p 00016000 08:03 28509171                       /lib64/libpthread-2.5.so
    Region 196:     16K, 3139017000-313901b000 rw-p 3139017000 00:00 0 
    Region 197:    520K, 3139200000-3139282000 r-xp 00000000 08:03 28509172                       /lib64/libm-2.5.so
    Region 198:      1M, 3139282000-3139481000 ---p 00082000 08:03 28509172                       /lib64/libm-2.5.so
    Region 199:      4K, 3139481000-3139482000 r--p 00081000 08:03 28509172                       /lib64/libm-2.5.so
    Region 200:      4K, 3139482000-3139483000 rw-p 00082000 08:03 28509172                       /lib64/libm-2.5.so
    Region 201:     80K, 3139600000-3139614000 r-xp 00000000 08:03 27531228                       /usr/lib64/libz.so.1.2.3
    Region 202:      1M, 3139614000-3139813000 ---p 00014000 08:03 27531228                       /usr/lib64/libz.so.1.2.3
    Region 203:      4K, 3139813000-3139814000 rw-p 00013000 08:03 27531228                       /usr/lib64/libz.so.1.2.3
    Region 204:    236K, 3139a00000-3139a3b000 r-xp 00000000 08:03 28509176                       /lib64/libsepol.so.1
    Region 205:      2M, 3139a3b000-3139c3b000 ---p 0003b000 08:03 28509176                       /lib64/libsepol.so.1
    Region 206:      4K, 3139c3b000-3139c3c000 rw-p 0003b000 08:03 28509176                       /lib64/libsepol.so.1
    Region 207:     40K, 3139c3c000-3139c46000 rw-p 3139c3c000 00:00 0 
    Region 208:     28K, 3139e00000-3139e07000 r-xp 00000000 08:03 28509173                       /lib64/librt-2.5.so
    Region 209:      2M, 3139e07000-313a007000 ---p 00007000 08:03 28509173                       /lib64/librt-2.5.so
    Region 210:      4K, 313a007000-313a008000 r--p 00007000 08:03 28509173                       /lib64/librt-2.5.so
    Region 211:      4K, 313a008000-313a009000 rw-p 00008000 08:03 28509173                       /lib64/librt-2.5.so
    Region 212:     84K, 313a200000-313a215000 r-xp 00000000 08:03 28509177                       /lib64/libselinux.so.1
    Region 213:      2M, 313a215000-313a415000 ---p 00015000 08:03 28509177                       /lib64/libselinux.so.1
    Region 214:      8K, 313a415000-313a417000 rw-p 00015000 08:03 28509177                       /lib64/libselinux.so.1
    Region 215:      4K, 313a417000-313a418000 rw-p 313a417000 00:00 0 
    Region 216:     52K, 313a600000-313a60d000 r-xp 00000000 08:03 28508215                       /lib64/libgcc_s-4.1.2-20080825.so.1
    Region 217:      2M, 313a60d000-313a80d000 ---p 0000d000 08:03 28508215                       /lib64/libgcc_s-4.1.2-20080825.so.1
    Region 218:      4K, 313a80d000-313a80e000 rw-p 0000d000 08:03 28508215                       /lib64/libgcc_s-4.1.2-20080825.so.1
    Region 219:    920K, 313aa00000-313aae6000 r-xp 00000000 08:03 27533465                       /usr/lib64/libstdc++.so.6.0.8
    Region 220:      1M, 313aae6000-313ace5000 ---p 000e6000 08:03 27533465                       /usr/lib64/libstdc++.so.6.0.8
    Region 221:     24K, 313ace5000-313aceb000 r--p 000e5000 08:03 27533465                       /usr/lib64/libstdc++.so.6.0.8
    Region 222:     12K, 313aceb000-313acee000 rw-p 000eb000 08:03 27533465                       /usr/lib64/libstdc++.so.6.0.8
    Region 223:     72K, 313acee000-313ad00000 rw-p 313acee000 00:00 0 
    Region 224:      1M, 313b200000-313b32d000 r-xp 00000000 08:03 28509179                       /lib64/libcrypto.so.0.9.8e
    Region 225:      1M, 313b32d000-313b52c000 ---p 0012d000 08:03 28509179                       /lib64/libcrypto.so.0.9.8e
    Region 226:    132K, 313b52c000-313b54d000 rw-p 0012c000 08:03 28509179                       /lib64/libcrypto.so.0.9.8e
    Region 227:     16K, 313b54d000-313b551000 rw-p 313b54d000 00:00 0 
    Region 228:    176K, 313ba00000-313ba2c000 r-xp 00000000 08:03 27542541                       /usr/lib64/libgssapi_krb5.so.2.2
    Region 229:      2M, 313ba2c000-313bc2c000 ---p 0002c000 08:03 27542541                       /usr/lib64/libgssapi_krb5.so.2.2
    Region 230:      8K, 313bc2c000-313bc2e000 rw-p 0002c000 08:03 27542541                       /usr/lib64/libgssapi_krb5.so.2.2
    Region 231:    276K, 313be00000-313be45000 r-xp 00000000 08:03 28508219                       /lib64/libssl.so.0.9.8e
    Region 232:      1M, 313be45000-313c044000 ---p 00045000 08:03 28508219                       /lib64/libssl.so.0.9.8e
    Region 233:     24K, 313c044000-313c04a000 rw-p 00044000 08:03 28508219                       /lib64/libssl.so.0.9.8e
    Region 234:     12K, 313ce00000-313ce03000 r-xp 00000000 08:03 28509182                       /lib64/libcom_err.so.2.1
    Region 235:      1M, 313ce03000-313d002000 ---p 00003000 08:03 28509182                       /lib64/libcom_err.so.2.1
    Region 236:      4K, 313d002000-313d003000 rw-p 00002000 08:03 28509182                       /lib64/libcom_err.so.2.1
    Region 237:     68K, 313d200000-313d211000 r-xp 00000000 08:03 28508365                       /lib64/libresolv-2.5.so
    Region 238:      2M, 313d211000-313d411000 ---p 00011000 08:03 28508365                       /lib64/libresolv-2.5.so
    Region 239:      4K, 313d411000-313d412000 r--p 00011000 08:03 28508365                       /lib64/libresolv-2.5.so
    Region 240:      4K, 313d412000-313d413000 rw-p 00012000 08:03 28508365                       /lib64/libresolv-2.5.so
    Region 241:      8K, 313d413000-313d415000 rw-p 313d413000 00:00 0 
    Region 242:    144K, 313e200000-313e224000 r-xp 00000000 08:03 27542539                       /usr/lib64/libk5crypto.so.3.1
    Region 243:      1M, 313e224000-313e423000 ---p 00024000 08:03 27542539                       /usr/lib64/libk5crypto.so.3.1
    Region 244:      8K, 313e423000-313e425000 rw-p 00023000 08:03 27542539                       /usr/lib64/libk5crypto.so.3.1
    Region 245:    580K, 313e600000-313e691000 r-xp 00000000 08:03 27542540                       /usr/lib64/libkrb5.so.3.3
    Region 246:      2M, 313e691000-313e891000 ---p 00091000 08:03 27542540                       /usr/lib64/libkrb5.so.3.3
    Region 247:     16K, 313e891000-313e895000 rw-p 00091000 08:03 27542540                       /usr/lib64/libkrb5.so.3.3
    Region 248:     32K, 313ea00000-313ea08000 r-xp 00000000 08:03 27542538                       /usr/lib64/libkrb5support.so.0.1
    Region 249:      1M, 313ea08000-313ec07000 ---p 00008000 08:03 27542538                       /usr/lib64/libkrb5support.so.0.1
    Region 250:      4K, 313ec07000-313ec08000 rw-p 00007000 08:03 27542538                       /usr/lib64/libkrb5support.so.0.1
    Region 251:      8K, 313ee00000-313ee02000 r-xp 00000000 08:03 28509181                       /lib64/libkeyutils-1.2.so
    Region 252:      1M, 313ee02000-313f001000 ---p 00002000 08:03 28509181                       /lib64/libkeyutils-1.2.so
    Region 253:      4K, 313f001000-313f002000 rw-p 00001000 08:03 28509181                       /lib64/libkeyutils-1.2.so
    Region 254:      4K, 2aaaaaaac000-2aaaaaaad000 rw-p 2aaaaaaac000 00:00 0 
    Region 255:     64M, 2aaaac000000-2aaab0000000 rw-p 2aaaac000000 00:00 0 
    Region 256:     40K, 2aaab0012000-2aaab001c000 r-xp 00000000 08:03 28508187                   /lib64/libnss_files-2.5.so
    Region 257:      1M, 2aaab001c000-2aaab021b000 ---p 0000a000 08:03 28508187                   /lib64/libnss_files-2.5.so
    Region 258:      4K, 2aaab021b000-2aaab021c000 r--p 00009000 08:03 28508187                   /lib64/libnss_files-2.5.so
    Region 259:      4K, 2aaab021c000-2aaab021d000 rw-p 0000a000 08:03 28508187                   /lib64/libnss_files-2.5.so
    Region 260:     64M, 2aaab4000000-2aaab8000000 rw-p 2aaab4000000 00:00 0 
    Region 261:     64M, 2aaab8000000-2aaabc000000 rw-p 2aaab8000000 00:00 0 
    Region 262:     63M, 2aaabc000000-2aaabfffa000 rw-p 2aaabc000000 00:00 0 
    Region 263:     24K, 2aaabfffa000-2aaac0000000 ---p 2aaabfffa000 00:00 0 
    Region 264:     63M, 2aaac0000000-2aaac3ff9000 rw-p 2aaac0000000 00:00 0 
    Region 265:     28K, 2aaac3ff9000-2aaac4000000 ---p 2aaac3ff9000 00:00 0 
    Region 266:     64M, 2aaac4000000-2aaac8000000 rw-p 2aaac4000000 00:00 0 
    Region 267:     63M, 2aaac8000000-2aaacbfed000 rw-p 2aaac8000000 00:00 0 
    Region 268:     76K, 2aaacbfed000-2aaacc000000 ---p 2aaacbfed000 00:00 0 
    Region 269:     63M, 2aaacc000000-2aaacfffe000 rw-p 2aaacc000000 00:00 0 
    Region 270:      8K, 2aaacfffe000-2aaad0000000 ---p 2aaacfffe000 00:00 0 
    Region 271:     63M, 2aaad0000000-2aaad3fe5000 rw-p 2aaad0000000 00:00 0 
    Region 272:    108K, 2aaad3fe5000-2aaad4000000 ---p 2aaad3fe5000 00:00 0 
    Region 273:     64M, 2aaad4000000-2aaad8000000 rw-p 2aaad4000000 00:00 0 
    Region 274:     64M, 2aaad8000000-2aaadc000000 rw-p 2aaad8000000 00:00 0 
    Region 275:     64M, 2aaadc000000-2aaae0000000 rw-p 2aaadc000000 00:00 0 
    Region 276:     64M, 2aaae0000000-2aaae4000000 rw-p 2aaae0000000 00:00 0 
    Region 277:     64M, 2aaae8000000-2aaaec000000 rw-p 2aaae8000000 00:00 0 
    Region 278:     64M, 2aaaec000000-2aaaf0000000 rw-p 2aaaec000000 00:00 0 
    Region 279:     63M, 2aaaf0000000-2aaaf3ff6000 rw-p 2aaaf0000000 00:00 0 
    Region 280:     40K, 2aaaf3ff6000-2aaaf4000000 ---p 2aaaf3ff6000 00:00 0 
    Region 281:     63M, 2aaaf8000000-2aaafbfff000 rw-p 2aaaf8000000 00:00 0 
    Region 282:      4K, 2aaafbfff000-2aaafc000000 ---p 2aaafbfff000 00:00 0 
    Region 283:     63M, 2aaafc000000-2aaaffffb000 rw-p 2aaafc000000 00:00 0 
    Region 284:     20K, 2aaaffffb000-2aab00000000 ---p 2aaaffffb000 00:00 0 
    Region 285:     63M, 2aab00000000-2aab03fff000 rw-p 2aab00000000 00:00 0 
    Region 286:      4K, 2aab03fff000-2aab04000000 ---p 2aab03fff000 00:00 0 
    Region 287:     63M, 2aab04000000-2aab07f73000 rw-p 2aab04000000 00:00 0 
    Region 288:    564K, 2aab07f73000-2aab08000000 ---p 2aab07f73000 00:00 0 
    Region 289:     63M, 2aab08000000-2aab0bfac000 rw-p 2aab08000000 00:00 0 
    Region 290:    336K, 2aab0bfac000-2aab0c000000 ---p 2aab0bfac000 00:00 0 
    (Omit Region from 291-425 since the post length limitation)
    Region 426:    508K, 2aac27f81000-2aac28000000 ---p 2aac27f81000 00:00 0 
    Region 427:     63M, 2aac28000000-2aac2bf81000 rw-p 2aac28000000 00:00 0 
    Region 428:    508K, 2aac2bf81000-2aac2c000000 ---p 2aac2bf81000 00:00 0 
    Region 429:     64M, 2aac2c000000-2aac30000000 rw-p 2aac2c000000 00:00 0 
    Region 430:    512M, 2aac34000000-2aac54000000 rw-p 2aac34000000 00:00 0 
    Region 431:    502M, 2aac5c30b000-2aac7b90b000 rw-p 2aac5c30b000 00:00 0 
    Region 432:      4K, 2b5d0b054000-2b5d0b055000 rw-p 2b5d0b054000 00:00 0 
    Region 433:     36K, 2b5d0b067000-2b5d0b070000 rw-p 2b5d0b067000 00:00 0 *Thread 1 (Thread 0x2b5d0b06f010 (LWP 1232))*
    Region 434:    116K, 7fffe2668000-7fffe2685000 rw-p 7ffffffe2000 00:00 0                      [stack]
    Region 435:    116K, ffffffffff600000-ffffffffffe00000 ---p 00000000 00:00 0                  [vdso]
    

1 个答案:

答案 0 :(得分:2)

显然,你的大部分8G是由于第3类内存区域(“许多令人困惑的(64M + ... + 63M + 508K)块”)。在将我们的多线程应用程序从32位Linux(使用200M虚拟内存)移植到64位Linux(使用7G虚拟内存)之后,我们发现了类似的行为:在我们的例子中,我们发现了132K rw-p和64M对--- p块,每对(几乎)一对。

我在这里讨论了类似的问题:http://www.experts-exchange.com/Programming/System/Linux/Q_27033610.html。这是海报的结论:

  

好的,我浏览了glibc来源,而glibc就是这样做的。

     

它将HEAP_MAX_SIZE定义为2 * DEFAULT_MMAP_THRESHOLD_MAX其中   DEFAULT_MMAP_THRESHOLD_MAX在32位上为512K,在64位上为32M。

     

然后它想要每个线程堆一个堆 - 如果没有备用堆分配新的   一个[new_heap()]。新堆必须是HEAP_MAX_SIZE,所以接下来   堆可以适合可能的孔(以节省vsize - 这么讽刺!)。至   对齐,它只需分配加倍的大小然后取消映射备件。

     

最后它只改变了对想要区域的保护   大多数新堆没有任何权利。如果需要更多堆   更改下一个块[grow_heap()]等的保护。

     

对我来说 - 它看起来很愚蠢而且浪费了。另一方面为什么呢   有人会限制64位的vspace吗?好Q,不是吗?

     

此外,它无法更改 - 它是编译时常量。

     

总而言之,我将不得不忍受这个巨大的多线程vsize   应用程序或链接到不同的内存分配器。

在我们的例子中,每个线程有一个132K堆,64M可用于grow_heap();在你的情况下,它看起来好像每个堆已经增长到(或接近)64M,例如区域271是63M堆(rw-p),区域272是尚未使用的剩余108K(--- p)。既然您不知道为什么您的流程首先使用8G,我不知道如何解释。

我也不知道为什么glibc会为每个线程创建一个堆(如果确实这是正确的解释)。这让我感到困惑:

  1. pthreads手册页 http://www.kernel.org/doc/man-pages/online/pages/man7/pthreads.7.html 说“这些线程共享相同的全局内存(数据和堆) 段)”。
  2. 我不相信我们的应用为每个线程创建了1MB堆 32位Linux
  3. 我们发现通过我们使用的库创建的线程没有 导致创建这些132K / 64M块(但也许是那个库 是不是在使用glibc?)