Втрати пам’яті в Linux
Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті
поскільки на форумі є багато лінкус спеців, можливо ви зможете допомогти розібратись.
після того як до серверної проги була додана підтримка лінукс я помітив зростання RSS пам’яті процесу на 4-8кб при кожному конекті/дисконекті клієнта (при чому у віндрвс ніяких втрат пам’яті не спостерігається.
коли я зробив дамп proc/self/maps отримав:
00400000-00521000 r-xp 00000000 fd:00 786436 /home/myuser/myserver 00721000-00722000 rw-p 00121000 fd:00 786436 /home/myuser/myserver 00722000-00724000 rw-p 00000000 00:00 0 026e5000-02746000 rw-p 00000000 00:00 0 [heap] 3535600000-353561f000 r-xp 00000000 fd:00 78751 /lib64/ld-2.14.so 353581e000-353581f000 r--p 0001e000 fd:00 78751 /lib64/ld-2.14.so 353581f000-3535820000 rw-p 0001f000 fd:00 78751 /lib64/ld-2.14.so 3535820000-3535821000 rw-p 00000000 00:00 0 3535a00000-3535b8f000 r-xp 00000000 fd:00 78761 /lib64/libc-2.14.so 3535b8f000-3535d8e000 ---p 0018f000 fd:00 78761 /lib64/libc-2.14.so 3535d8e000-3535d92000 r--p 0018e000 fd:00 78761 /lib64/libc-2.14.so 3535d92000-3535d93000 rw-p 00192000 fd:00 78761 /lib64/libc-2.14.so 3535d93000-3535d99000 rw-p 00000000 00:00 0 3535e00000-3535e02000 r-xp 00000000 fd:00 78774 /lib64/libdl-2.14.so 3535e02000-3536002000 ---p 00002000 fd:00 78774 /lib64/libdl-2.14.so 3536002000-3536003000 r--p 00002000 fd:00 78774 /lib64/libdl-2.14.so 3536003000-3536004000 rw-p 00003000 fd:00 78774 /lib64/libdl-2.14.so 3536200000-3536216000 r-xp 00000000 fd:00 37268 /lib64/libpthread-2.14.so 3536216000-3536415000 ---p 00016000 fd:00 37268 /lib64/libpthread-2.14.so 3536415000-3536416000 r--p 00015000 fd:00 37268 /lib64/libpthread-2.14.so 3536416000-3536417000 rw-p 00016000 fd:00 37268 /lib64/libpthread-2.14.so 3536417000-353641b000 rw-p 00000000 00:00 0 3536600000-3536610000 r-xp 00000000 fd:00 78811 /usr/lib64/libodbcinst.so.2.0.0 3536610000-3536810000 ---p 00010000 fd:00 78811 /usr/lib64/libodbcinst.so.2.0.0 3536810000-3536811000 rw-p 00010000 fd:00 78811 /usr/lib64/libodbcinst.so.2.0.0 3536a00000-3536a5f000 r-xp 00000000 fd:00 27010 /usr/lib64/libodbc.so.2.0.0 3536a5f000-3536c5e000 ---p 0005f000 fd:00 27010 /usr/lib64/libodbc.so.2.0.0 3536c5e000-3536c66000 rw-p 0005e000 fd:00 27010 /usr/lib64/libodbc.so.2.0.0 3536c66000-3536c67000 rw-p 00000000 00:00 0 3536e00000-3536e15000 r-xp 00000000 fd:00 78775 /lib64/libgcc_s-4.6.0-20110428.so.1 3536e15000-3537014000 ---p 00015000 fd:00 78775 /lib64/libgcc_s-4.6.0-20110428.so.1 3537014000-3537015000 rw-p 00014000 fd:00 78775 /lib64/libgcc_s-4.6.0-20110428.so.1 3538600000-3538617000 r-xp 00000000 fd:00 78786 /lib64/libresolv-2.14.so 3538617000-3538817000 ---p 00017000 fd:00 78786 /lib64/libresolv-2.14.so 3538817000-3538818000 r--p 00017000 fd:00 78786 /lib64/libresolv-2.14.so 3538818000-3538819000 rw-p 00018000 fd:00 78786 /lib64/libresolv-2.14.so 3538819000-353881b000 rw-p 00000000 00:00 0 353a200000-353a214000 r-xp 00000000 fd:00 12064 /usr/lib64/libelf-0.152.so 353a214000-353a413000 ---p 00014000 fd:00 12064 /usr/lib64/libelf-0.152.so 353a413000-353a414000 r--p 00013000 fd:00 12064 /usr/lib64/libelf-0.152.so 353a414000-353a415000 rw-p 00014000 fd:00 12064 /usr/lib64/libelf-0.152.so 353d600000-353d6e8000 r-xp 00000000 fd:00 78793 /usr/lib64/libstdc++.so.6.0.16 353d6e8000-353d8e8000 ---p 000e8000 fd:00 78793 /usr/lib64/libstdc++.so.6.0.16 353d8e8000-353d8f0000 r--p 000e8000 fd:00 78793 /usr/lib64/libstdc++.so.6.0.16 353d8f0000-353d8f2000 rw-p 000f0000 fd:00 78793 /usr/lib64/libstdc++.so.6.0.16 353d8f2000-353d907000 rw-p 00000000 00:00 0 3541a00000-3541a5c000 r-xp 00000000 fd:00 78808 /lib64/libfreebl3.so 3541a5c000-3541c5b000 ---p 0005c000 fd:00 78808 /lib64/libfreebl3.so 3541c5b000-3541c5d000 rw-p 0005b000 fd:00 78808 /lib64/libfreebl3.so 3541c5d000-3541c61000 rw-p 00000000 00:00 0 3541e00000-3541e08000 r-xp 00000000 fd:00 78809 /lib64/libcrypt-2.14.so 3541e08000-3542007000 ---p 00008000 fd:00 78809 /lib64/libcrypt-2.14.so 3542007000-3542008000 r--p 00007000 fd:00 78809 /lib64/libcrypt-2.14.so 3542008000-3542009000 rw-p 00008000 fd:00 78809 /lib64/libcrypt-2.14.so 3542009000-3542037000 rw-p 00000000 00:00 0 3542a00000-3542a09000 r-xp 00000000 fd:00 22913 /usr/lib64/libltdl.so.7.3.0 3542a09000-3542c08000 ---p 00009000 fd:00 22913 /usr/lib64/libltdl.so.7.3.0 3542c08000-3542c09000 rw-p 00008000 fd:00 22913 /usr/lib64/libltdl.so.7.3.0 3548600000-3548616000 r-xp 00000000 fd:00 14527 /lib64/libnsl-2.14.so 3548616000-3548815000 ---p 00016000 fd:00 14527 /lib64/libnsl-2.14.so 3548815000-3548816000 r--p 00015000 fd:00 14527 /lib64/libnsl-2.14.so 3548816000-3548817000 rw-p 00016000 fd:00 14527 /lib64/libnsl-2.14.so 3548817000-3548819000 rw-p 00000000 00:00 0 7f1dcc000000-7f1dcc021000 rw-p 00000000 00:00 0 7f1dcc021000-7f1dd0000000 ---p 00000000 00:00 0 7f1dd1c59000-7f1dd8000000 r--p 00000000 fd:00 77003 /usr/lib/locale/locale-archive 7f1dd8000000-7f1dd8021000 rw-p 00000000 00:00 0 7f1dd8021000-7f1ddc000000 ---p 00000000 00:00 0 7f1ddcb61000-7f1ddcb62000 ---p 00000000 00:00 0 7f1ddcb62000-7f1ddd362000 rw-p 00000000 00:00 0 7f1ddd362000-7f1ddd363000 ---p 00000000 00:00 0 7f1ddd363000-7f1dddb63000 rw-p 00000000 00:00 0 7f1dddb63000-7f1dddb64000 ---p 00000000 00:00 0 7f1dddb64000-7f1dde364000 rw-p 00000000 00:00 0 7f1dde364000-7f1dde376000 r-xp 00000000 fd:00 79041 /usr/lib64/libodbcinst.so.1 7f1dde376000-7f1dde576000 ---p 00012000 fd:00 79041 /usr/lib64/libodbcinst.so.1 7f1dde576000-7f1dde577000 rw-p 00012000 fd:00 79041 /usr/lib64/libodbcinst.so.1 7f1dde577000-7f1dde777000 r-xp 00000000 fd:00 35405 /usr/lib64/libmyodbc5-5.1.8.so 7f1dde777000-7f1dde7c3000 rw-p 00200000 fd:00 35405 /usr/lib64/libmyodbc5-5.1.8.so 7f1dde7c3000-7f1dde7c4000 rw-p 00000000 00:00 0 7f1dde7c4000-7f1dde7c5000 r-xp 00000000 fd:00 5943 /usr/lib64/gconv/ISO8859-1.so 7f1dde7c5000-7f1dde9c5000 ---p 00001000 fd:00 5943 /usr/lib64/gconv/ISO8859-1.so 7f1dde9c5000-7f1dde9c6000 r--p 00001000 fd:00 5943 /usr/lib64/gconv/ISO8859-1.so 7f1dde9c6000-7f1dde9c7000 rw-p 00002000 fd:00 5943 /usr/lib64/gconv/ISO8859-1.so 7f1dde9c7000-7f1dde9cd000 r-xp 00000000 fd:00 5731 /lib64/libnss_dns-2.14.so 7f1dde9cd000-7f1ddebcc000 ---p 00006000 fd:00 5731 /lib64/libnss_dns-2.14.so 7f1ddebcc000-7f1ddebcd000 r--p 00005000 fd:00 5731 /lib64/libnss_dns-2.14.so 7f1ddebcd000-7f1ddebce000 rw-p 00006000 fd:00 5731 /lib64/libnss_dns-2.14.so 7f1ddebce000-7f1ddebda000 r-xp 00000000 fd:00 5733 /lib64/libnss_files-2.14.so 7f1ddebda000-7f1ddedd9000 ---p 0000c000 fd:00 5733 /lib64/libnss_files-2.14.so 7f1ddedd9000-7f1ddedda000 r--p 0000b000 fd:00 5733 /lib64/libnss_files-2.14.so 7f1ddedda000-7f1ddeddb000 rw-p 0000c000 fd:00 5733 /lib64/libnss_files-2.14.so 7f1ddeded000-7f1ddedf2000 rw-p 00000000 00:00 0 7f1ddedf2000-7f1ddee75000 r-xp 00000000 fd:00 32411 /lib64/libm-2.14.so 7f1ddee75000-7f1ddf074000 ---p 00083000 fd:00 32411 /lib64/libm-2.14.so 7f1ddf074000-7f1ddf075000 r--p 00082000 fd:00 32411 /lib64/libm-2.14.so 7f1ddf075000-7f1ddf076000 rw-p 00083000 fd:00 32411 /lib64/libm-2.14.so 7f1ddf076000-7f1ddf078000 rw-p 00000000 00:00 0 7f1ddf080000-7f1ddf081000 rw-p 00000000 00:00 0 7f1ddf081000-7f1ddf088000 r--s 00000000 fd:00 76956 /usr/lib64/gconv/gconv-modules.cache 7f1ddf088000-7f1ddf089000 rw-s 00000000 00:04 360454 /SYSV79003162 (deleted) 7f1ddf089000-7f1ddf08b000 rw-p 00000000 00:00 0 7fff4fce4000-7fff4fd05000 rw-p 00000000 00:00 0 [stack] 7fff4fd8c000-7fff4fd8d000 r-xp 00000000 00:00 0 [vdso] ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
після 30 ітерацій (конект/дисконект), отримав біля 70 нових рядків на зразок:
7f1da8fca000-7f1da8fcb000 ---p 00000000 00:00 0 7f1da8fcb000-7f1da97cb000 rw-p 00000000 00:00 0 7f1da97cb000-7f1da97cc000 ---p 00000000 00:00 0 7f1da97cc000-7f1da9fcc000 rw-p 00000000 00:00 0 7f1da9fcc000-7f1da9fcd000 ---p 00000000 00:00 0 7f1da9fcd000-7f1daa7cd000 rw-p 00000000 00:00 0 7f1daa7cd000-7f1daa7ce000 ---p 00000000 00:00 0 7f1daa7ce000-7f1daafce000 rw-p 00000000 00:00 0 7f1daafce000-7f1daafcf000 ---p 00000000 00:00 0 7f1daafcf000-7f1dab7cf000 rw-p 00000000 00:00 0 7f1dab7cf000-7f1dab7d0000 ---p 00000000 00:00 0 7f1dab7d0000-7f1dabfd0000 rw-p 00000000 00:00 0 7f1dabfd0000-7f1dabfd1000 ---p 00000000 00:00 0 7f1dabfd1000-7f1dac7d1000 rw-p 00000000 00:00 0 7f1dac7d1000-7f1dac7d2000 ---p 00000000 00:00 0 7f1dac7d2000-7f1dacfd2000 rw-p 00000000 00:00 0 7f1dacfd2000-7f1dacfd3000 ---p 00000000 00:00 0 7f1dacfd3000-7f1dad7d3000 rw-p 00000000 00:00 0 7f1dad7d3000-7f1dad7d4000 ---p 00000000 00:00 0 7f1dad7d4000-7f1dadfd4000 rw-p 00000000 00:00 0 7f1dadfd4000-7f1dadfd5000 ---p 00000000 00:00 0 7f1dadfd5000-7f1dae7d5000 rw-p 00000000 00:00 0 7f1dae7d5000-7f1dae7d6000 ---p 00000000 00:00 0 7f1dae7d6000-7f1daefd6000 rw-p 00000000 00:00 0 7f1daefd6000-7f1daefd7000 ---p 00000000 00:00 0 7f1daefd7000-7f1daf7d7000 rw-p 00000000 00:00 0 7f1daf7d7000-7f1daf7d8000 ---p 00000000 00:00 0 7f1daf7d8000-7f1daffd8000 rw-p 00000000 00:00 0 7f1daffd8000-7f1daffd9000 ---p 00000000 00:00 0
що вони означають?
19 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів