získání informací o využití paměti procesu z / proc / pid / smaps
<p>pro daný proces v <code>/proc/&lt;pid&gt;/smaps</code> pro danou položku mapování:</p><ol> <li>shared\_clean</li> <li>shared\_dirty</li> <li>private\_clean</li> <li>private\_dirty</li> </ol><p>je <code>shared\_clean</code> + <code>shared\_dirty</code> množství paměti, která je sdílena s jinými procesy? je to jako sdílený rss?</p><p>podobně je <code>private\_clean</code> + <code>private\_dirty</code> množství paměti, které je <strong> k dispozici pouze pro jeden proces </strong>? je to jako soukromý rss?</p><p>je hodnota pss = privaterss + (sharedrss/počet procesů, které ji sdílejí)?</p><p><em> <strong> několik dalších otázek po přečtení tohoto odkazu: <a href="http://lwn.net/articles/230975/"> lwn </a> </strong></em></p><p><em> nyní můžeme hovořit o procesu jako o celku, jehož smaps vstupu se díváme.</em></p><p>všiml jsem si, že pokud ano <code>shared\_clean</code> + <code>shared\_dirty</code> + <code>private\_clean</code> + <code>private\_dirty</code> pro každou položku smaps pro tento proces dostávám rss procesu podle hlášení <code>ps</code>, což je docela v pohodě. například.</p><pre><code>ps -p $$ -o pid,rss </code></pre><p>dá mi (přibližně) stejnou hodnotu pro rss jako součet všech <code>shared\_clean</code>, <code>shared\_dirty</code>, <code>private\_clean</code>, <code>private\_dirty</code> položka v/proc/$$/smaps.</p><p><strong> ale co pss </strong> pro celý proces? takže z výše uvedeného příkladu, jak získám pss za $$? mohu přidat položku pss pro každé mapování smaps a dorazit na pss za $$?</p><p><strong> a co uss </strong> pro celý proces? znovu vezmu příklad uvedený výše a hádám, že mohu dospět na uss pro $$ tím, že shrnuji pouze položky private\_ * pro každou položku smaps pro $$ .. že jo?</p><p>poznámky:<br> pss = proporční velikost sady.<br> uss = unikátní velikost sady.</p>
<p>čisté stránky jsou stránky, které se od mapování nezměnily (textové sekce ze sdílených knihoven se obvykle čtou pouze z disku (je-li to nutné), nikdy se neupravují, takže budou na sdílených, čistých stránkách).<br> špinavé stránky jsou stránky, které nejsou čisté (tj. byly upraveny).</p><p>soukromé stránky jsou k dispozici pouze pro tento proces, sdílené stránky jsou mapovány jinými procesy<sup>*</sup>.</p><p>rss je celkový počet stránek, sdílených nebo ne sdílených, aktuálně mapovaných do procesu. takže <code>shared\_clean</code> + <code>shared\_dirty</code> by byla sdílená část rss (tj. část rss, která je také mapována do jiných procesů) a <code>private\_clean</code> + <code>private\_dirty</code> soukromá část rss (tj. mapována pouze v tomto procesu).</p><p>pss (poměrná velikost sdílené složky) je, jak jste popsali. soukromé stránky se sčítají tak, jak jsou, a velikost každého sdíleného mapování se dělí počtem procesů, které je sdílejí.<br> takže pokud měl proces 100 000 soukromých stránek, 500 000 stránek sdílených s jedním dalším procesem a 500 000 sdílených se čtyřmi dalšími procesy, pss by byla:</p><pre><code>100k + (500k / 2) + (500k / 5) = 450k </code></pre><p>další údaje:</p><ul> <li> <a href="http://lwn.net/articles/230975/">elc: kolik paměti aplikace skutečně používají?</a> </li> <li> <a href="http://www.kernel.org/doc/documentation/filesystems/proc.txt"><code>documentation/filesystems/proc.txt</code></a> ve zdroji jádra</li> <li> <a href="http://www.kernel.org/doc/man-pages/online/pages/man5/proc.5.html"><code>man proc(5)</code></a> </li> <li> <a href="http://tldp.org/ldp/khg/hypernews/get/memory/linuxmm.html">přehled správy paměti linux</a> </li> <li> <a href="http://tldp.org/ldp/tlk/mm/memory.html">správa paměti</a> na tldp.org</li> <li> <a href="http://linux-mm.org/">linuxmm</a> </li> </ul><p>pokud jde o částky za celý proces:</p><ul> <li> <p><code>rss</code> může být (přibližně<sup>+</sup>) získané součtem položek <code>rss:</code> v <code>smaps</code> (nemusíte sčítat sdílené/soukromé sdílené/špinavé položky).</p> <pre><code>awk '/rss:/{ sum += $2 } end { print sum }' /proc/$$/smaps </code></pre></li> <li>hodnoty <code>pss:</code> můžete sčítat stejným způsobem, abyste získali globální proces <code>pss</code>.</li> <li><code>uss</code> není hlášeno v <code>smaps</code>, ale ve skutečnosti jde o součet soukromých mapování, takže je můžete získat stejným způsobem</li> </ul><p><sub><sup>*</sup>upozorňujeme, že stránka „sdílená s možností sdílení“ se počítá jako soukromé mapování, dokud není <em> skutečně </em> sdílena. tj. pokud v současné době existuje pouze jeden proces používající <code>libfoo</code>, textová část knihovny se objeví v <em> soukromých </em> mapování procesu. ve sdílených mapováních (a odstraněných ze soukromých) bude účtována pouze v případě, že/když jiný proces začne používat tuto knihovnu.</sub><br> <sub><sup>+</sup>hodnoty se nesčítají přesně pro všechny procesy. není si úplně jistý, proč ... promiňte.</sub></p>
Sdílená paměť je operační paměť, kterou sdílí (jak název sdílená napovídá) jak operační systém PC, tak grafika, pokud je taková integrovaná v procesoru nebo na základní desce. Pokud použiješ procesor bez integrované grafiky a pokud není integrovaná grafika ani na desce, pak se tě jakýkoliv údaj o sdílené paměti netýká. A jediné, co je z hlediska tebou zamýšlené grafiky podstatné, je, aby na desce byl odpovídající PCI-E slot a aby měl zdroj dostatečný výkon pro napájení té grafiky. Tak snad vidíš ve Správci úloh, který proces žere paměť, ne? Nebo to je zadání tipovačky?A když už si to budeš prohlížet, podívej se i na vytížení CPU. Videl bych to na prava na slozce. Pouzivam osobne XP, ale na nich se musi v moznostech slozky odzaskrtnout pole pouzivat zjednodusene sdileni. Po te pri kazdem nastavovani sdileni slozky pribude zalozka s pravama, kde se da nastavit uzivatel nebo skupina, ktera do slozky muze vstupovat, zapisovat atd. Tak asi mapy nastavení a historie atd. Představ si, že každý nepotřebuje zavalit disky gigabajty her, přihlouplých filmů a muzikou.Někomu na smysluplnou práci úplně stačí malý SSD disk navíc rozdělený na 2 části C: pro OS, pracovní SW a D: pro pracovní data, která se pravidelně zálohují.Samozřejmě, že si Win10 vytvořil malé sektory pro svojí potřebu. A není ten soubor zrovna nějakým procesem využíván? Vypadá to tak. PomalÝ, bylY,začalY.... tvrdých Y se nemusíš bát.Je otázka, jestli při hibernaci se jenom načítá obsah RAM a nebo systém z RAM něco potřebuje přesunout, aby si udělal v RAM místo. To by pak mohl být problém pro SSD bez cache DRAM.Mimochodem. Pořád se při hibernaci ukládá stav registrů a zásobníku CPU?Prozraď nám velikost RAM a model SSD. Ještě doplním, že to se týká jen samotného manuálního mazání nepotřebných souborů. Ale asi nedonutíš ostatní programy, aby mazaly stejným způsobem. Pokud nutně potřebuješ, aby na disku nezůstaly obnovitelné zbytky, tak jediným způsobem je asi šifrování disku. Tam nikdo bez znalosti hesla nepřečte nic, včetně smazaných zbytků. To už jsem zkoušel ale to bohužel taky nejede...funguje to pouze jako single ale každá pamět musí být v prvním slotu řekněme toho páru.Takže to mám tak že v prvním páru mám jednu RAM v prvním slotu a druhém páru mám druhou RAM také v prvním slotu jinak to prostě najednou nejede. Skryté soubory?