[РЕШЕНО] При использовании swap оперативная память не заполняется в первую очередь.

Aivar
Я, признаться, не вижу разницы в отзывчивости системы между включенным и выключенным свопом.
Я тоже не вижу, сколько не экспериментировал .... разница наступает только тогда, когда наступает исчерпание ОЗУ и заполнение swap, а так у меня старенький HDD, то наблюдаю сильнейшие тормоза ... а учитывая, что в 99% мне вполне хватает 50% ОЗУ, то потому swap и выкинул, но активировал killer-а.

PS - вот что вижу в основном в bar - 500/1900 M .... ну максимум доходит до 700/2500 M
Ошибки не исчезают с опытом - они просто умнеют
vasek
PS - вот что вижу в основном в bar - 500/1900 M …. ну максимум доходит до 700/2500 M
хз фаерфокс запрашивает при запуске минимум 4ГБ -- занимает конечно меньше, но потом он начинает незаполнив енти 4ГБ запрашивать сразу 9ГБ... и так далее...
safocl
запрашивать сразу 9ГБ
Попробуйте какой нибудь ограничитель для неактивных табов
Вроде
https://addons.mozilla.org/ru/firefox/addon/total-suspender/

https://addons.mozilla.org/en-US/firefox/addon/tab-discard-suspender/
Ну и browser.cache.disk.enable вкличить если выключен
safocl
фаерфокс запрашивает при запуске минимум 4ГБ – занимает конечно меньше, но потом он начинает незаполнив енти 4ГБ запрашивать сразу 9ГБ… и так далее…
Провел эксперимент - открыл 11 вкладок в браузере palemoon, в одной из них запустил видео-новости - вот так меняется память
1-ая колонка: реальное used/max_ожидаемое used ... системы в целом (запущено из больших: tilix, pcmanfm, libreoffice)
2-ая колонка: VmSize / VmRSS одного процесса palemoon
520/1777 M ..… 2291/416 M
521/1776 M .....  2291/416 M
………….
539/1829 M ….. 2328/434 M
544/1834 M ….. 2328/438 M
………….
586/1904 M …   2657/483 M
587/1914 M …   2657/483 M
………….
605/1941 M ….. 2664/506 M
629/1966 M ….. 2689/529 M
………….
796/2159 M ….. 2846/695 M
800/2162 M ….. 2848/700 M
как видно особо ничего не кушается ... один минус - подскочила температура cpu градусов на 8-10
Ошибки не исчезают с опытом - они просто умнеют
vasek
как видно особо ничего не кушается
так он и не кушает особо -- он реально потребляет 400 мегабайт -- но запрашивает 9 гигабайт... зачем?
safocl
но запрашивает 9 гигабайт… зачем?
Не нужно смотреть на эти 9G, так устроено, это так называемая виртуальная память, точнее объем адресного пространства приложения, зависит от того как написано приложение. А максимальный суммарный объем всех адресных пространств, выделенных всем приложениям, составляет в 64-битной системе 16 экзобайт, но эта память никогда не используется явно - ядро отображает эту память на адреса физической памяти (RAM) только если в этом есть необходимость, то есть вызывается при необходимости.
Например, у меня в данный момент суммарный объем этого адресного пространства (виртуальной памяти) составляет порядка 11G
cat /proc/meminfo | grep CommitLimit
CommitLimit: 11130388 kB
А вот реальный используемый оббъем составляет всего 583M
free -m | grep Mem | awk '{print $3}'
583
Но есть еще один интересный параметр - Committed_AS , параметр, сложный, но грубо говоря, показывает, сколько при текущей загрузке системы (в текущий момент) потребуется ОЗУ, если процессы реально захотят использовать выделенную им память, необходимую для работы
cat /proc/meminfo | grep Committed_AS
Committed_AS: 2111584 kB
Для оценки поведения системы я и вывожу два значения: used (из free -m) и Committed_AS (из meminfo) - всегда перед глазами.
А вот в части swap, все намного сложнее - слишком много нужно учитывать дополнительных параметров, значения которых к тому же зависят от того, как написана программа.
Ошибки не исчезают с опытом - они просто умнеют
vasek
это так называемая виртуальная память
все верно енто то че в коде вызвано аллокатором... -- например new char[9000000000]
vasek
значения которых к тому же зависят от того, как написана программа.
вот тут я не соглашуся -- прога не юзает напрямую управление памятью в ентом аспекте -- для нее существует абстракция как аллокатор памяти -- а уж его работой и регулировкой занимается ядро ОС
safocl
вот тут я не соглашуся – прога не юзает напрямую управление памятью в ентом аспекте
имел ввиду другое - не управление памятью, а состав проги: текстовые данные, двоичные данные и др., от объема которых и частоты, приоритета использования ядро принимает решение что оставить в ОЗУ, а что отправить в swap, а что то и удалить.
Ошибки не исчезают с опытом - они просто умнеют
safocl, поэкспериментируй ограничить потребление памяти свой игрушки, используя механизм cgroups
Ошибки не исчезают с опытом - они просто умнеют
upd
пару дней назад решил переключиться на стандартное ядро с zen-ядра -- и о чудо -- унылое поведение исчезло -- терь использование свапа очень мелкое и юзается только когда очень малое количество оперативки осталось свободной
енто при стандартных настройках swappiness=60

получается, что енто было именно zen ядро виновато -- что то там либо не обновлено из ветки ядра, либо сделаны патчи с кривизной, либо так и задумывалось, -- конечно там типа же под рилтайм работу расчитано, а не под ублажение одной проги.
 
Зарегистрироваться или войдите чтобы оставить сообщение.