firefoxic |
|
Темы:
7
Сообщения:
112
Участник с: 12 января 2013
|
Преветствую всех! Давно хотел выразить благодарность сообществу, но как у Джадда Вайнета у меня не получится, ибо в программной сфере я дуб-дубом. Ну хоть что-то полезное, хотя бы советом по оптимизации. И тут как раз подворачивается такой случай — глупо упускать :) Преамбула Начну с того, что я ярый противник подкачки. Мне винда несколько дисков поломала своей подкачкой, пока я не понял в чём дело, и не вырубил её ещё в винде. Переходя на Linux я само-собой намеренно не создавал раздел swap (и тем более, когда HDD заменил на SSD). В принципе, если в игры не играть и хромом не пользоваться, то моих 4GiB памяти (больше в материнку не вставить) вполне достаточно. Но иногда, например во время компиляции из AUR чего-то большого, возникают-таки проблемы из-за нехватки памяти. Суть И тут вдруг на днях в мою хабраленту прилетает статья про один из модулей ядра — zram. Не хочется коряво пересказывать тут статью, но в двух словах опишу, как я понял её суть: создаётся некое устройство и размещается в памяти, данные попадающие в это устройство сжимаются, причём сжимаются многократно (в смысле по объёму, а не по количеству циклов сжатия :), какие данные в него попадают — зависит от того, в качестве чего используется это устройство. Я ещё читая статью понял, что для меня было бы самым разумным использовать его для подкачки. Но из статьи лично я не понял, как же настраивать всё это. Поиски Мне нужна была дополнительная информация, за которой я полез на нашу arch-wiki. Но конкретно про модуль zram и его настройку ничего не нашёл. Зато в статье Maximizing Performance обнаружился пункт Compcache/Zram, который интересен не столько информацией про zram, сколько про утилиту zramswap. Статья на русский недопереведена, и этого пункта в русском варианте нет. Поэтому позволю себе вольный его перевод. Zram (ранее называемый Compcache) — модуль ядра, который создаёт в оперативной памяти устройство и сжимает его. Если использовать его для подкачки, то часть оперативной памяти может хранить гораздо большее количество информации, но при этом используется несколько больше ресурсов процессора. Тем не менее, такая подкачка намного быстрее, чем обмен данными с жестким диском. Если система часто уходит в swap, это может улучшить отклик. Бинго! Это же ровно то, что мне было нужно: устройства по количеству ядер, общий объём соответствующий оперативке, использование для подкачки. И никакие маны дополнительно курить не нужно! Всё, что я сделал, это:
Тесты После рестарта я увидел следующее: До этого третий столбец был тёмно-серый с надписью (ЕМНИП) „Подкачка недоступна‟. Теперь же она появилась, при том, что (как я говорил ранее) на диске раздела swap нет. Но пустой виртуальный swap не сильно забавляет — нужно его потестировать. Для теста решил поставить игру Champions of Regnum из Steam. Я запустил всё, что только мог — браузеры, в том числе хромого, офис, графические редакторы, rss-читалку, и прочее, что хоть как-то ощутимо кушало память, хоть по 100 метров. Упёрся почти в потолок физической памяти. Вот тут-то и понадобилась игра (запущенная с максимальными настройками), которая по идее должна была выпихнуть из обычной памяти данные в swap. Что и случилось :) — после выключения игры (во время игры полноэкранный режим не давал посмотреть на состояние памяти) я увидел такую картину: То есть игра выпихнула менее актуальные на тот момент данные в виртуальный swap, который их сжал попутно. Далее при закрытии игра ушла из памяти, освободив в ней место. После этого я долго пользовался системой в обычном режиме. Физическая память потихоньку заполнялась и при закрытии программ — освобождалась. А вот состояние swap почти не менялось. Из чего я сделал вывод, что данные в него утрамбовались, и далее считывались оттуда налету. А они должны были считываться, ведь программы я старался не закрывать, и использовал их. Затем я ещё раз запустил игру. После её выключения состояние памяти было примерно таким же, только объём занятого swap вырос с 18% до 23%, а физическая память чуть больше освободилась. То бишь ещё больше данных утрамбовалось. Итоги Итак, что мы имеем?
P.S. В след за wiki повторю, что модуль ещё не допилен до состояния стабильности, и его следует использовать с осторожностью. Хотя мне видится единственная возможная проблема с его нестабильностью — при падении или чего-то ещё могут потеряться не сохранённые изменения ваших файлов. Поэтому, как и без активации этого модуля, — просто чаще сохраняйтесь ;) P.P.S. Буду благодарен за конструктивную критику и за поправки от знатоков и экспертов, в том числе по переводу.
Я не красноглазик, я фаерфоксик ^_^
|
arcanis |
|
Темы:
31
Сообщения:
1496
Участник с: 09 сентября 2012
|
я все же не совсем понял, откуда взялся своп. Вы говорите о помещении в оперативную память, по тексту же и картинкам я могу предположить только, что своп пишется на диск в рутовый раздел А так спасибо за статью, хотя надобности (лично мне) в этом нет. В наше тяжелое время гораздо проще купить планку на 8гб на 100р дороже, чем планку на 2гб, которую еще найти надо |
firefoxic |
|
Темы:
7
Сообщения:
112
Участник с: 12 января 2013
|
Своп именно в оперативке размещается. Примерно так: создаются дивайсы /dev/zram0 и /dev/zram1 (и так далее, у кого сколько ядер проца), размещаются они в RAM, затем монтируются — в данном случае zramswap их монтирует как swap. Ну а системе по барабану, где этот своп размещается: видит своп — использует его. И показывает на графиках системных.
Я не красноглазик, я фаерфоксик ^_^
|
nafanja |
|
Темы:
94
Сообщения:
9252
Участник с: 02 июня 2012
заблокирован
|
Прикольно, а темпик сжимаемый можно сделать?
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874 |
firefoxic |
|
Темы:
7
Сообщения:
112
Участник с: 12 января 2013
|
nafanjaНу я думаю, что в этот своп, как и в обычный (только у этого ещё и приоритет перед обычным), спихиваются любые данные менее актуальные системе, чем те, которые ей надо разместить в памяти сию минуту. А если темпик смонтирован в tmpfs, и если я правильно понимаю, что такое tmpfs, то /tmp находится в памяти. Следовательно при надобности и темпик в сжатый виртуальный своп может (хотя бы даже частично) уйти. По крайней мере я надеюсь на это, ибо сам tmpfs активно использую. Но я не заметил, чтобы были попытки запихнуть в своп что-либо до тех пор пока в физической памяти хватает места. Хотя это ведь если использовать утилиту zramswap. Но если вы разберётесь с тем как самостоятельно настроить zram, то думаю будет не проблема запихнуть в устройства /dev/zram(№) хоть /tmp, хоть что угодно. Всё в ваших руках ;)
Я не красноглазик, я фаерфоксик ^_^
|
mehanoid |
|
Темы:
28
Сообщения:
382
Участник с: 27 апреля 2010
|
Я так понимаю, при подключении этой штуки использование гибернации станет невозможно? |
nafanja |
|
Темы:
94
Сообщения:
9252
Участник с: 02 июня 2012
заблокирован
|
mehanoid, только что проверил, спящий режим работает... (естественно если не был отключен свап раздел)
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874 |
cucullus |
|
Темы:
268
Сообщения:
3554
Участник с: 06 июня 2007
|
этот zram на словах действительно хорош, а вот как до дела доходит, всё колом встаёт. ;)
такие дела.
|
ivand |
|
Темы:
9
Сообщения:
477
Участник с: 04 января 2013
|
Бьемся за скорость на шине, загрузке, инете и тут, нате- жать-разжать Для cd- оно: в раму грузиться, привод освобождать |
firefoxic |
|
Темы:
7
Сообщения:
112
Участник с: 12 января 2013
|
cucullusЧто конкретно у вас колом встало? Можно поподробнее? ivandВсё что сжимается — сжимается единожды, далее разжимается только при считывании, налету. Я чего только не вытворял ради тестов. Тремя параллельно запущенными играми запихнул в сжатый своп практически всё, что играми не являлось. Затем пользовался системой активно. И хоть бы где, хоть бы в чём-то замечено было уменьшение скорости. Всё летает как и прежде. Что-то для zram никто не додумался утилиту состряпать такую, чтобы исключительно cd в неё пихать (*задумался* — "а cd ещё кому-то надо?"). Зато именно своповский вариант оказался на столько нужным, что люди решили остальным жизнь облегчить. Не наводите напраслину :) Ничего оно толком не жрёт, а пользы много.
Я не красноглазик, я фаерфоксик ^_^
|