Своп Линукса и кэш(и) Мозиллы
4295
12
Бимс
experienced
Сделал своп в 2 раза больше памяти, как положено. А кэш браузера пишется в своп или отдельно? Проблема такая. Привык, сидя в Ленте.ру, сначала открыть 50 окон, а потом их просматривать, как Вашингтон маневрирует или есть ли G-точка у женщин. Но Мозилла через пару десятков окон становится оооочень задумчивым.
Увеличить кэш? А их сколько, 1 или 2? В "Центре управления" компьютера кэш= 5 МБ, а в настройках Мозиллы кэш=50 МБ. Это разные кэши?
Дальше арифметика. Одна страница 8, пусть 10 МБ. Итого надо 500 МБ. Если кэш в свопе, увеличить своп? На 500 или на 2х500?
Увеличить кэш? А их сколько, 1 или 2? В "Центре управления" компьютера кэш= 5 МБ, а в настройках Мозиллы кэш=50 МБ. Это разные кэши?
Дальше арифметика. Одна страница 8, пусть 10 МБ. Итого надо 500 МБ. Если кэш в свопе, увеличить своп? На 500 или на 2х500?
Mad_Dollar
guru
Вы не понимаете что такое своп и кэш, а так же зачем приложению память и как она получается. В Вашем случае решением будет увеличение оперативной памяти.
Бимс
experienced
А так ли уж обязательно понимать? У чёрного ящика есть параметры. Если их немного, простым тыком можно подобрать оптимум. Вот только сейчас убедился, что поставив оба значения кэша = 500 МБ, задумчивость не устранить. Вот я и спрашиваю понимающих, а своп поможет? Увеличить память? Позвольте не согласиться, что это единственное решение. Когда я сидел на предыдущей Мандриве2007, у меня вообще и мыслей не возникало о разных там свопах и кэшах, всё летало. Единственно, мне казалось, что Мозилла чуть медленнее закачивает 50 окон, чем мною установленная Опера.
Дальше: научу Мандриву ставить и обновлять не только со своего сайта, пока сопротивляется. Поставлю Оперу. Не поможет - удлиню своп вдвое. Не поможет - вернусь к Мандриве2007. Но покупать ДДР 1 ГБ, которая дороже ДДР2, не вижу смысла.
Дальше: научу Мандриву ставить и обновлять не только со своего сайта, пока сопротивляется. Поставлю Оперу. Не поможет - удлиню своп вдвое. Не поможет - вернусь к Мандриве2007. Но покупать ДДР 1 ГБ, которая дороже ДДР2, не вижу смысла.
Mad_Dollar
guru
Эх... Своп - это применительно к вашей ситуации страницы памяти, в данный момент не используемые процессами, и "сброшенные" ОС на диск для высвобождения памяти реальной для других приложений. Так же помните - код может выполняться только в оперативной памяти, и любые данные, которые он читает/пишет в память/из памяти должны находится в физическом адресном пространстве (то есть не в свопе). Приложение в смысле именно приложения, а не демона/драйвера вообще не озабачивается размером свопа она получает память по запросу через системную функцию ОС, и ОС всегда рпедоставляет ей не виртуальную память. Чем больше потоков/процессов запущенно - тем больше система использует сброс страниц на диск и их восстановление. Если системе не хватает размера своп-раздела, система просто отказывает приложениям/потокам в выделении памяти, что чаще всего приводит к их завершению, либо некорректной работе, в частности приложение может сообщать о том, что не может выполнить некий функционал в связи с отсутствием свободной памяти.
Теперь далее. Кэш Мозиллы/Оперы - некое место, куда Мозилла/Опера (далее просто Мозилла) складывает недавно полученные объекты. Точнее запрос GET предваряется запросом HEAD /* если вам это что-то скажет конечно */, то есть браузер прежде чем запросить страницу/картинку/другой_объект из сети спрашивает о времени его последней модификации, и потом сравнивает с тем, есть ли у него такой же объект (не старше чем есть в сети) в кэше, то есть в особой папочке на диске. Если объект найден в кэше - он не запрашивается из сети, а берется с диска (что существенно быстрее для любых каналов связи применительно к конечному пользователю). Таким образом экономия времени/трафика происходит существенная только тогда, когда вы ходите на один и тот же ресурс, в котором не меняется графическое наполнение, набор скриптов, большая часть слоев и стилей, да и то - при условии грамотного оптимального написания сайта. Объекты в кэшэ хранятся по принципу очереди - самый новый "замещает, выталкивает" самого старого.
Теперь скажите мне, каким образом размер свопа повлияет на быстродействие, так же как и размер кэша? Как вариант, что на прошлом браузере все летало - только лишь в том, что память приложением начала использоваться более/менее рационально. В частности, если разработчики поставили для себя стандартом эндюзера наличие у него двух ГБ - то и память может запрашиваться у системы бОльшими блоками, снижая затраты процессорного времени на ее выделение/высвобождение, что ускоряет общую работу "кода" на системах с бОльшим количеством физически представленной ОП, но будет меннее рационально/продуктивно на системах с меньшим ее количеством. Я удовлетворил Ваше любопытство?
Теперь далее. Кэш Мозиллы/Оперы - некое место, куда Мозилла/Опера (далее просто Мозилла) складывает недавно полученные объекты. Точнее запрос GET предваряется запросом HEAD /* если вам это что-то скажет конечно */, то есть браузер прежде чем запросить страницу/картинку/другой_объект из сети спрашивает о времени его последней модификации, и потом сравнивает с тем, есть ли у него такой же объект (не старше чем есть в сети) в кэше, то есть в особой папочке на диске. Если объект найден в кэше - он не запрашивается из сети, а берется с диска (что существенно быстрее для любых каналов связи применительно к конечному пользователю). Таким образом экономия времени/трафика происходит существенная только тогда, когда вы ходите на один и тот же ресурс, в котором не меняется графическое наполнение, набор скриптов, большая часть слоев и стилей, да и то - при условии грамотного оптимального написания сайта. Объекты в кэшэ хранятся по принципу очереди - самый новый "замещает, выталкивает" самого старого.
Теперь скажите мне, каким образом размер свопа повлияет на быстродействие, так же как и размер кэша? Как вариант, что на прошлом браузере все летало - только лишь в том, что память приложением начала использоваться более/менее рационально. В частности, если разработчики поставили для себя стандартом эндюзера наличие у него двух ГБ - то и память может запрашиваться у системы бОльшими блоками, снижая затраты процессорного времени на ее выделение/высвобождение, что ускоряет общую работу "кода" на системах с бОльшим количеством физически представленной ОП, но будет меннее рационально/продуктивно на системах с меньшим ее количеством. Я удовлетворил Ваше любопытство?
Бимс
experienced
Ах, мне, право же, стало неудобно за то, что вынудил вас так напрягаться. Да и не нужен мне такой глубокий уровень знаний. Сказали бы просто "своп не поможет" и добавили бы для особой убедительности "век воли не видать", и я бы специалисту поверил. Спасибо.
Совет удлинить память я запомню.
Совет удлинить память я запомню.
Mad_Dollar
guru
=) Просто это к вопросу о том, что есть черный ящик и некое количество настроек - видимо вы не те тумблеры пытались крутить )))) Кстати ремонт/модернизация чего-либо методом научного тыка способствует исключительно увеличению знаний, но не есть есть оптимальное решение проблемы =)
А так - пользуйтесь. Либо откатитесь на старую мандриву, либо уж память докупите
А так - пользуйтесь. Либо откатитесь на старую мандриву, либо уж память докупите
Бимс
experienced
Вы таки будете смеяться, но увеличение свопа с 1,5 до 2,2 ГБ резко помогло. Скорость закачки 50 окон Мозиллой стала вполне комфортной, тормозов не заметил.
Мой дистриб Мандрива 2008 фри требует минимум 256 МБ памяти, рекомендуемая 512 МБ, столько у меня и есть.
Оперу так и не смог установить, говорит, "из-за неудовлетворённости libstdc++". Блин, а у прошлой Мандр2007, выходит, такая удовлетворённость была. Впрочем, это отдельная песня. Спасибо за советы.
Мой дистриб Мандрива 2008 фри требует минимум 256 МБ памяти, рекомендуемая 512 МБ, столько у меня и есть.
Оперу так и не смог установить, говорит, "из-за неудовлетворённости libstdc++". Блин, а у прошлой Мандр2007, выходит, такая удовлетворённость была. Впрочем, это отдельная песня. Спасибо за советы.
Сейчас читают
Красивые и счастливые мамочки 2012 года (часть 26)
311108
1000
Марафон стройности - 79
197104
1000
Красота и беременность (часть 65)
225840
1000
Бимс
experienced
Сейчас ещё раз проверил, 50 окон - всё летает. Получается, рекомендация своп=память х 2 годится только для работы самой операционки, а ежели ещё что-то пашет, множитель нужно увеличивать. Запомним. Сейчас у меня своп= 3 ГБ=6х500
а Вы посмотрите вывод команды
cat /proc/meminfo
когда у вас запущена Mozilla и открыто 50 окон.
кэш браузера и своп не имеют никакого отношение к друг другу. Просто в Вашем случае есть процесс -- запущенные браузер Mozilla FireFox и есть его потомки -- открытые 50 вкладок (окон). Так вот, оперативной памяти банально не хватает, чтобы это все держать активным, и часть потомков выгружается в своп. Не кэш браузера, а процессы! Вы же не одновременно все 50 окон рассматриваете.
Можно сказать, что для разработчиков Ваш случай немного нетривиальный ... возможно они предполагают что одновременно работать с таким количеством окон -- нонсенс. :-)))
Ну а то, что Вы нашли простой выход -- это только плюс.
cat /proc/meminfo
когда у вас запущена Mozilla и открыто 50 окон.
кэш браузера и своп не имеют никакого отношение к друг другу. Просто в Вашем случае есть процесс -- запущенные браузер Mozilla FireFox и есть его потомки -- открытые 50 вкладок (окон). Так вот, оперативной памяти банально не хватает, чтобы это все держать активным, и часть потомков выгружается в своп. Не кэш браузера, а процессы! Вы же не одновременно все 50 окон рассматриваете.
Можно сказать, что для разработчиков Ваш случай немного нетривиальный ... возможно они предполагают что одновременно работать с таким количеством окон -- нонсенс. :-)))
Ну а то, что Вы нашли простой выход -- это только плюс.
Бимс
experienced
Может, выход я и нашёл, но ошибся в 50 раз, бывает. Посчитал трафик после полной загрузки окон, 11 МБ, какие там 500, бредовая цифра.
Что интересно, при автоматической разметке диска Мандрива сделала своп 3,8 ГБ, т.е. гораздо больше, чем память Х2.