Автор Тема: Използване на памета при различните кернели  (Прочетена 3738 пъти)

IvanST

  • Напреднали
  • *****
  • Публикации: 369
    • Профил
Преди няколко дена си компилирах 2.4.23 кернел и какво забелязвам - имам 2x256MB RAM в момента 495MB са заети ! обаче когато заредя другия, стария 2.4.22 кернел поведението е съвсем различно използването на памета стига максимум до 200MB, не забелязвам някаква разлика в производителноста. Обаче искам да попитам дали има някаква опция при конфигурирането за памета която съм изпуснал?
Бях чел някаде че Linux пълни памета до последно обаче защо има разлика при тези два кернела и то толкова голяма.
Още нещо когато стартирам системата в единия случай памета е около 90MB в другия около 350MB.
Ще бъда благодарен ако някой по знаещ може да обясни нещата   '<img'>
Активен

ivak

  • Напреднали
  • *****
  • Публикации: 156
    • Профил
512 mb са доста ram и е трудно да ги заемеш изцяло с
програми. по принцип кернелът ползва цялата неалокирана
памет (т.е. такава, която не е присъединена към адресното
пространство на някоя програма) за дискови буфери.
процеса на алокация е динамичен - колкото повече памет
заемат програмите, толкова по-малки стават буферите.
в някакъв момент се достига до минималния допустим
размер на буферите и тогава кернелът започва да яде
от виртуалната памет. обаче във всеки от междинните
моменти free (или cat /proc/memstat ако предпочиташ)
твърди, че цялата налична памет е изконсумирана.
единствения момент, когато това не е така, е след boot,
преди кернелът да е извършил достатъчно i/o операции,
за да напълни буферите.

накратко казано, отговорът на твоя въпрос е: вероятно си
гледал статистиката на двата кернела в различен момент
след boot-ването.

определено има доста опции за конфигуриране на паметта,
но те не са достъпни от make menuconfig. за някой неща
се изисква бърникане по хедърите, за други - писане в
разни /proc файлове. добра отправна точка за научаване
на повече подробности около тези бъзикни е страницата:

http://linuxperf.nl.linux.org/
Активен

Cлoжнитe пpoблeми имaт пpocти и лecни зa paзбиpaнe гpeшни oтгoвopи.

IvanST

  • Напреднали
  • *****
  • Публикации: 369
    • Профил
Цитат (ivak @ Ян. 05 2004,22:47)
накратко казано, отговорът на твоя въпрос е: вероятно си
гледал статистиката на двата кернела в различен момент
след boot-ването.

Точно това е че не сам гледал различен момент за това и ми направи впечатление като интересно явление, просто дори и веднага след реебутване при двата кернела ,както писах започват с различно количество памет. Тъй като и двата са в момента на на PC  ще направя скрииншот и ще го постна някаде
И за двата swapa е на 0MB обаче 2.4.23 кернела изпълва памета почти докрай докато при 2.4.22 повече от полвината памет остава свободна това е да кажем след около 10-20 мин работа след boot .
Активен

ivak

  • Напреднали
  • *****
  • Публикации: 156
    • Профил
за да ти е най-чист експериментът, зареди в single user.
най-добре с аргумент init=/bin/bash от boot prompt.

защото в противен случай бог знае какво прави ipl
процедурата. примерно, може да пуска updatedb.

другото, което не каза, е какъв е 2.4.22 кернелът. ако
не си го компилирал ти може да са му правени някакви
tweak-ове от дистрибутора. понякога размерът на
дисковите буфери се орязва нарочно, за да може
винаги да има свободна памет на разположение. виж
цитата по-долу:

Цитат
Sometimes, you'll end up with a situation where the kernel can't seem to find
enough memory to load a program for you, even though you've got tons of
memory.  This may be caused by the filesystem buffers using up the extra, and
not having enough memory immediately available.  You can often fix this by
modifying the contents of /proc/sys/vm/freepages (the three values are
min_free_pages, free_pages_low, and free_pages_high in case you care -- check
the source for more details).  "256 512 768" is common, but often not enough.
I use "1024 2048 3072" usually.  That's almost definitely enough memory to load
anything, and with 384 megs of RAM, it's not going to hurt performance by
reducing the amount available for caching.


аз все още работя на .22 и той се държи точно по начина,
който описа за 2.4.23 - веднага глътва цялата налична
памет. същото правеха и всички кернели, които мога да
си спомня, още от 2.0.0 насам.
Активен

Cлoжнитe пpoблeми имaт пpocти и лecни зa paзбиpaнe гpeшни oтгoвopи.

IvanST

  • Напреднали
  • *****
  • Публикации: 369
    • Профил
И двата кернела аз съм ги компилирал като сорса е от Дебиан
Активен

  • Гост
Dokolkoto znam 2.4.23 e sys now memory management (mislia che go naprawiha kato tozi w 2.6 iadrata). Normalno e da ima razlika wse pak sa dwe razlichni wersii.
Активен

ivak

  • Напреднали
  • *****
  • Публикации: 156
    • Профил
няма такова нещо, както можеш да се убедиш и сам:

http://www.bg.kernel.org/linux/kernel/v2.4/ChangeLog-2.4.23

2.4 е стабилна версия  и такива промени в него са малко вероятни.
Активен

Cлoжнитe пpoблeми имaт пpocти и лecни зa paзбиpaнe гpeшни oтгoвopи.

  • Гост
Stawa wypros za towa (w syshtia tozi change log):

<marcelo:logos.cnet>:
  o Mehmet Ceyran/Alan Cox: Longer i810_audio.c retries
  o aa VM merge: Per-zone watermark changes, add lower_zone_reserve_ratio
  o aa VM merge: page reclaiming logic changes: Kills oom killer
  o aa VM merge: Page accounting helpers changes
  o aa VM merge: tunables
  o aa VM merge: Kill PF_MEMDIE
  o aa VM merge: Fixup page reclaiming changes patch

Dokolkoto znam stawa wypros za Virtual Memory merge sys tazi na  Andrea Arcangeli (aa). Mislia che tochno towa VM se polzwa wyw 2.6 no ne sym siguren.
Активен

ivak

  • Напреднали
  • *****
  • Публикации: 156
    • Профил
прав си, приятелю, но само за едно. това наистина са
пачове на Андреа Архангели. да ти призная, обаче,
никъде измежду тях не видях нещо, което да променя
драстично поведението на операционната система.

има няколко поправки на потенциални smp колизии и
лек ремонт на стратегията за възстановяване от състояние
"out of virtual memory". нищо чак толкова драматично.
промените засягат около 3% от кода на mm, предимно
в частта, където се управлява пейджинга.

изобщо не може да се говори за нов mm.

ако не ми вярваш, провери сам за какво иде реч. може пък
аз да бъркам и да не съм забелязал някое фундаментално
нововъведение. обаче недей да ми губиш повече времето
с разни "доколкото знам" и "мисля че".
Активен

Cлoжнитe пpoблeми имaт пpocти и лecни зa paзбиpaнe гpeшни oтгoвopи.

  • Гост
Powecheto promeni sa wyw mm/vmscan.c

/*
 *  linux/mm/vmscan.c
 *
 *  The pageout daemon, decides which pages to evict (swap out) and
 *  does the actual work of freeing them.
....
Ne sym zapoznat dobre sys source code-a no spored men imenno tezi promeni prawiat taka che da se zaema pochti cialata pamet na sistemata i to wyw cache i buffers. Kato gledam source-a imenno tuk se reshawa na koi pages da se  naprawi free.  

I ne sym kazal che se promenia drastichno powedenieto na operacionnata sistema. Operacionnata sistema ne e samo memory management.
Активен

ivak

  • Напреднали
  • *****
  • Публикации: 156
    • Профил
виждам, направил си си труда да погледнеш patch файла,
сега се опитай и да го разбереш. може би е добре да
започнеш с малко терминология, като например да си
изясниш какво точно означава "виртуална памет" и "суап".
ако имаш някакви въпроси - питай смело, може би ще мога
да ти помогна. мога да те насоча и към някои полезни четива.

последното ти изречение няма да го коментирам. погледни
заглавието на темата.
Активен

Cлoжнитe пpoблeми имaт пpocти и лecни зa paзбиpaнe гpeшни oтгoвopи.

  • Гост
Iawno ne ti lipswa samochuwstwie. Niama da zanimawam genii kato tebe s wyprosi otnostno "суап".
Активен