Home » International » Russian » Слишком большое использование памяти
|
|
|
|
Re: Слишком большое использование памяти [message #21944 is a reply to message #21729] |
Thu, 18 October 2007 05:51 |
vaverin
Messages: 708 Registered: September 2005
|
Senior Member |
|
|
Andrew,
большое спасибо за интересный вопрос, на первый взгляд он казался несложным, но когда стали копать -- выяснилось что не все так просто.
Мы скачали stress тест по указанной Вами ссылке, запустили его на наших нодах и воспроизвели описаную Ваи ситуацию.
Далее, мы повторили эксперимент на RHEL kernels -- там ситуация была в точности такой же. Попробовали на mainstream kernels -- увидели в точности такую же картину:
Cached -- отностиельно небольшой,
Inactive -- большая часть памяти.
Хочу сразу заметить -- это не баг. Вернее не memory leak. При необходимости память без проблем освобождается, memeater быстро приводит к сокращению Inactive.
По идее inacive -- память задействованная ранее под дисковый кэш, но в настоящее время никем не используемая. Однако в нашем случае inactive существенно больше cached. Почему так получается? Где-то баг?
Мы проверили значения, вроде бы все правильно. Сached -- это действительно размер дискового кэша, и он действительно небольшой. В inactive попадает только cached memory, и на первый взгляд при удалении из кэша inactive тоже должен сниматься. Вроде бы все необходимые места в ядре подперты, и ничего не забыто.
Однако же ситуация каким-то образом воспроизводится! Как же так?
Стали смотреть что делает Ваш тест -- открывает файл, удаляет его, потом много туда пишет, ну и в конце закрывает файл. В таком случае данные живут в дисковом кэше до удаления inode c filesystem, однако на pages по-видимому кто-то сслается и тем самым не дает ее освободить.
Пытались повторить опреации вручную -- не вопроизводится. Да и в экспериментах со stress inactive начинала расти отнюдь не сразу. По-видимому, влияет еще некий фактор.
Заметили, что buffer heads тоже достаточно много -- возможно они держат. Но их по идее тоже пытались почистить при закрытии файла, но очевидно по каким-то причинам не получилось.
На этом, в сущности, пока и застряли. Да, память не утекает, и явного бага тут нет. Да, ситуация странная и не вполне нормальная -- вся память оказывается забита данными, которые вроде бы никому не должны быть нужны. Пямять кто-то держит, но кто -- непонятно. Разбирательство "в лоб" захлебнулось.
Однако жить оно тем не менее особо не мешает, поэтому пока мы отложим эту проблему в сторонку, будем думать и разбираться. Глядишь, со временем что-нить прояснится.
С уважением,
Василий Аверин
Head of SWsoft Linux kernel support team
|
|
|
|
|
|
Re: Слишком большое использование памяти [message #35806 is a reply to message #21481] |
Thu, 23 April 2009 15:32 |
Wildy
Messages: 5 Registered: June 2007
|
Junior Member |
|
|
Та же проблема...
Ситуация: есть сервер с 2 Xeon 5140 (итого 4 ядра), 16 GB RAM, SAS RAID 1. На машине - OpenVZ, Debian (как в HN так и в VE), drbd. После нескольких дней использования начала заканчиваться память в машине, причем большая ее часть в Inactive. После прибиения абсолютно всего (SysRQ+E!) - не отдается.
Внутри машинки крутится(все компоненты в разных VE, на HN ничего нет) - apache2+php, mysql5, mail, ejabberd, bind9.
Итак, статы в студию.
uname -a
Linux real2 2.6.18-openvz-13-51.3d1-amd64 #1 SMP Tue Dec 25 22:50:42 MSK 2007 x86_64 GNU/Linux
cat /proc/meminfo
MemTotal: 16390204 kB
MemFree: 377592 kB
Buffers: 275640 kB
Cached: 3262192 kB
SwapCached: 0 kB
Active: 5873892 kB
Inactive: 9432296 kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal: 16390204 kB
LowFree: 377592 kB
SwapTotal: 7815612 kB
SwapFree: 7815576 kB
Dirty: 3328 kB
Writeback: 0 kB
AnonPages: 3613180 kB
Mapped: 73072 kB
Slab: 552916 kB
PageTables: 71704 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
CommitLimit: 16010712 kB
Committed_AS: 5950124 kB
VmallocTotal: 34359738364 kB
VmallocUsed: 303316 kB
VmallocChunk: 34359433888 kB
cat /proc/user_beancounters
Version: 2.5
uid resource held maxheld barrier limit failcnt
107: kmemsize 7472644 9994715 36845281 39078329 0
lockedpages 0 0 35 35 0
privvmpages 137614 139832 262144 262144 0
shmpages 18 18 8192 8192 0
dummy 0 0 0 0 0
numproc 25 40 239 239 0
physpages 117896 119132 0 9223372036854775807 0
vmguarpages 0 0 6144 9223372036854775807 0
oomguarpages 117896 119132 6144 9223372036854775807 0
numtcpsock 8 34 200 200 0
numflock 1 9 1000 1100 0
numpty 0 3 16 16 0
numsiginfo 0 4 256 256 0
tcpsndbuf 139520 514024 8388608 12582912 0
tcprcvbuf 131072 3511264 5582617 6343884 0
othersockbuf 83992 322008 1395653 4194304 0
dgramrcvbuf 0 44816 159835 159835 0
numothersock 39 56 1024 1024 0
dcachesize 307053 378828 1536000 1920000 0
numfile 871 1104 10000 10000 0
dummy 0 0 0 0 0
dummy 0 0 0 0 0
dummy 0 0 0 0 0
numiptent 10 10 5000 5000 0
106: kmemsize 4920770 7640718 33554432 33554432 0
lockedpages 0 0 32 32 0
privvmpages 52230 77929 262144 307200 0
shmpages 18 1026 8192 8192 0
dummy 0 0 0 0 0
numproc 22 40 100 120 0
physpages 37441 49031 0 9223372036854775807 0
vmguarpages 0 0 6144 9223372036854775807 0
oomguarpages 37441 49031 6144 9223372036854775807 0
numtcpsock 25 49 80 80 0
numflock 1 7 100 110 0
numpty 0 2 16 16 0
numsiginfo 0 6 256 256 0
tcpsndbuf 160328 543144 1048576 2097152 0
tcprcvbuf 722872 1809864 8388608 8388608 0
othersockbuf 2312 28472 132096 336896 0
dgramrcvbuf 0 10768 132096 132096 0
numothersock 2 12 80 80 0
dcachesize 264798 358581 1048576 1097728 0
numfile 656 948 4000 4500 0
dummy 0 0 0 0 0
dummy 0 0 0 0 0
dummy 0 0 0 0 0
numiptent 10 10 128 128 0
104: kmemsize 1360171 3342912 10485760 15728640 0
lockedpages 0 16 32 32 0
privvmpages 19210 33829 65536 65536 0
shmpages 0 1008 8192 8192 0
dummy 0 0 0 0 0
numproc 12 27 65 65 0
physpages 6562 11308 0 9223372036854775807 0
vmguarpages 0 0 6144 9223372036854775807 0
oomguarpages 6562 11308 6144 9223372036854775807 0
numtcpsock 6 11 80 80 0
numflock 1 5 100 110 0
numpty 0 2 16 16 0
numsiginfo 0 4 256 256 0
tcpsndbuf 0 30784 319488 524288 0
tcprcvbuf 98304 1057432 1048576 2097152 209
othersockbuf 23120 215808 212738 336896 35175
dgramrcvbuf 0 39368 1048576 2097152 0
numothersock 11 108 140 140 0
dcachesize 123009 214092 1048576 1097728 0
numfile 638 992 2048 2048 0
dummy 0 0 0 0 0
dummy 0 0 0 0 0
dummy 0 0 0 0 0
numiptent 10 10 128 128 0
103: kmemsize 6853032 25775467 61238573 75987811 0
lockedpages 0 16 32 32 0
privvmpages 482320 943071 1048576 1048576 0
shmpages 0 1344 8192 8192 0
dummy 0 0 0 0 0
numproc 40 600 600 650 521
physpages 445994 547246 0 9223372036854775807 0
vmguarpages 0 0 6144 9223372036854775807 0
oomguarpages 445994 547246 6144 9223372036854775807 0
numtcpsock 23 589 3000 3000 0
numflock 125 129 500 510 0
numpty 0 1 16 16 0
numsiginfo 0 4 256 256 0
tcpsndbuf 732480 2659600 13841203 16777216 0
tcprcvbuf 376832 1286280 4956160 6717440 0
othersockbuf 4624 292480 309760 460800 0
dgramrcvbuf 0 2576 132096 132096 0
numothersock 3 13 200 200 0
dcachesize 457293 1156848 2560000 2560000 0
numfile 1326 8000 8800 8800 3852
dummy 0 0 0 0 0
dummy 0 0 0 0 0
dummy 0 0 0 0 0
numiptent 10 10 128 128 0
102: kmemsize 15004300 27179230 40529809 42986161 0
lockedpages 0 16 32 32 0
privvmpages 221050 395998 524288 524288 0
shmpages 0 992 8192 8192 0
dummy 0 0 0 0 0
numproc 79 176 239 239 0
physpages 198442 228764 0 9223372036854775807 0
vmguarpages 0 0 6144 9223372036854775807 0
oomguarpages 198442 228764 6144 9223372036854775807 0
numtcpsock 44 97 500 550 0
numflock 16 81 1000 1100 0
numpty 2 3 16 16 0
numsiginfo 0 12 256 256 0
tcpsndbuf 831040 3273568 8388608 12582912 0
tcprcvbuf 603008 4730384 5582617 6343884 0
othersockbuf 398904 1077840 1395653 4194304 0
dgramrcvbuf 0 127416 159835 159835 0
numothersock 226 551 1024 1024 0
dcachesize 606340 930686 11520000 11520000 0
numfile 3100 6778 30000 35000 0
dummy 0 0 0 0 0
dummy 0 0 0 0 0
dummy 0 0 0 0 0
numiptent 158 358 5000 5000 0
101: kmemsize 87853961 229649570 314572800 314572800 0
lockedpages 2123 2331 2409 2409 0
privvmpages 237523 678464 774400 774400 0
shmpages 3491 6067 8192 8192 0
dummy 0 0 0 0 0
numproc 319 681 825 825 0
physpages 107222 375679 0 9223372036854775807 0
vmguarpages 0 0 6144 9223372036854775807 0
oomguarpages 107222 375679 6144 9223372036854775807 0
numtcpsock 124 1289 2024 2024 0
numflock 3 519 1000 1100 0
numpty 0 3 16 16 0
numsiginfo 0 512 563 563 0
tcpsndbuf 4200888 17778336 40600862 45782302 0
tcprcvbuf 1440792 9217944 11534336 19031488 0
othersockbuf 261256 757392 1108607 2048576 0
dgramrcvbuf 0 88872 159835 159835 0
numothersock 234 296 512 512 0
dcachesize 915525 2337171 11520000 11520000 0
numfile 4246 7290 10000 10000 0
dummy 0 0 0 0 0
dummy 0 0 0 0 0
dummy 0 0 0 0 0
numiptent 14 16 128 128 0
0: kmemsize 11926576 14721714 9223372036854775807 9223372036854775807 0
lockedpages 43913 43929 9223372036854775807 9223372036854775807 0
privvmpages 11478 49790 9223372036854775807 9223372036854775807 0
shmpages 1292 2028 9223372036854775807 9223372036854775807 0
dummy 0 0 9223372036854775807 9223372036854775807 0
numproc 102 121 9223372036854775807 9223372036854775807 0
physpages 8158 15017 9223372036854775807 9223372036854775807 0
vmguarpages 0 0 9223372036854775807 9223372036854775807 0
oomguarpages 8167 15026 9223372036854775807 9223372036854775807 0
numtcpsock 9 14 9223372036854775807 9223372036854775807 0
numflock 1 6 9223372036854775807 9223372036854775807 0
numpty 2 2 9223372036854775807 9223372036854775807 0
numsiginfo 1 872 9223372036854775807 9223372036854775807 0
tcpsndbuf 848056 1379048 9223372036854775807 9223372036854775807 0
tcprcvbuf 993320 1592016 9223372036854775807 9223372036854775807 0
othersockbuf 62424 84352 9223372036854775807 9223372036854775807 0
dgramrcvbuf 0 430952 9223372036854775807 9223372036854775807 0
numothersock 62 82 9223372036854775807 9223372036854775807 0
dcachesize 1589698 1633831 9223372036854775807 9223372036854775807 0
numfile 2262 3261 9223372036854775807 9223372036854775807 0
dummy 0 0 9223372036854775807 9223372036854775807 0
dummy 0 0 9223372036854775807 9223372036854775807 0
dummy 0 0 9223372036854775807 9223372036854775807 0
numiptent 1438 1462 9223372036854775807 9223372036854775807 0
vzmemcheck
Output values in %
LowMem LowMem RAM MemSwap MemSwap Alloc Alloc Alloc
util commit util util commit util commit limit
1.99 10.06 23.06 15.62 3.33 19.53 3.33 52.01
uptime
19:08:12 up 13 days, 1:50, 2 users, load average: 1.78, 1.43, 1.49
Да, если вдруг где-то чрезмерно задраны UBC - за подсказку буду благодарен.
|
|
|
Goto Forum:
Current Time: Tue Nov 05 16:18:52 GMT 2024
Total time taken to generate the page: 0.03804 seconds
|