Укрощение лисы

2018-04-12

…или как снизить потребление памяти прожорливого firefox и заставить linux жить по средствам.

Сейчас иногда использую в качестве мобильного рабочего места ноут Samsung R522 — впечатляющая даже по сегодняшним меркам машинка, но всего с 2G RAM на борту. В основном я работаю либо с совсем низкоуровневыми программами (vim, tmux, mutt, mbsync, mercurial, pandoc, … что еще нужно человеку для полного счастья?) и прельстиво и любовно допиленным openbox. Однако, quantum firefox способен сожрать всю память и завесить систему. Ко всему прочему, чтобы пощадить винт, я принципиально отключил своп. Посему начали случаться моменты когда система зависала. Это не совсем зависание — как написали на одном из форумов «just highly unresponsible» — но обычно у меня не хватало терпения ждать и я перезагружал машину.

Некоторое время я пытался настроить firefox на меньшую прожорливость, проверял плагинки, обновлял базы — в общем все необходимые ритуальные танцы. В конце-концов стало понятно, что проблема не в браузере.

Я забрался в докуметацию и выяснил интересную штуку. Оказывается, в ядре есть такая настройка, как memory overcommit — выделение приложению памяти больше, чем есть в наличии. Я не копал глубоко вопрос почему и зачем это сделано — по моим предположениям такой режим выгоден (а) когда запущено много разных приложений и есть шанс, что недостающая память случайным образом высвободится за счет закрытия другой программы, к моменту когда она понадобится программе текущей (привет теории массового обслуживания), (б) расчет идет на то, что если лимит памяти будет превышен — пойдет сброс лишнего в своп (которого у меня нет) и (в) если будет совсем плохо запустится task killer и прибьет какое-нибудь ненужное приложение (на практике killer обычно тупит).

За режим выделения памяти отвечают переменные vm.overcommit_memory — которая задает режим выделения памяти и vm.overcommit_ratio, которая определяет насколько можно превысить пределы.

По дефолту у меня были режим 0 и 50% соответственно:


cat /proc/sys/vm/overcommit_memory
0

cat /proc/sys/vm/overcommit_ratio
50

Я их поменял на «режим 2» (не выдавать память авансом — давать только то, что есть в наличии) и 98% (расходовать всю память минус 2% для баша на всякий пожарный) соответственно. Все равно памяти больше не станет — поэтому лучше, чтобы система «жила по средствам» и не тщилась съесть больше, чем есть в наличии.

Это можно сделать из-под рута на один сеанс (до перезагрузки — посмотреть, как поведет себя система):


echo 2 > /proc/sys/vm/overcommit_memory
echo 98 > /proc/sys/vm/overcommit_ratio

Либо открыть из-под рута в текстовом редакторе /etc/sysctl.conf

и добавить туда пару строчек:

# профилактируем оверкоммиты памяти
vm.overcommit_ratio = 98
vm.overcommit_memory = 2

Тогда настройки подхватятся после перезагрузки и можно будет на них посмотреть через cat (см команды выше).

В теории это может вызвать подтормаживание лисы, но я побочных эффектов пока не заметил, зато система стала работать стабильно, что не может не радовать.

Реклама

К годовщие Firefox или почему у мозиллы может получиться

2015-11-23

Если говорить о десктопе, то я почти всегда предпочитаю оффлайновое (десктопное) приложение онлайновому. То есть читать почту из thunderbird’а, а не из веб-интерфейса. Читаю книги с диска, а не из онлайновой библиотеки (только одно исключение — когда нужно оперативно найти цитату). Смотрю кино оффлайновым плейером, а не из тытруба. И так далее, и тому подобное.

Со смартфоном ситуация строго обратная. Какое-то время я ставил разные приложения типа прогноза погоды с wunderground’а, фейсбук мессенджера и т.д. и т.п. Потом открыл для себя такую чудесную штуку, как «страница -> добавить на домашний экран» в андроидном firefox. Эта штука добавляет на рабочий экран иконку, которая является закладкой на нужную страницу. То есть вместо огромного фейсбук мессенджера можно оставить иконку на страничку с сообщениями (а еще на страничку новостей, на страничку мероприятий) — и сэкономить этим пространство и время. Все равно без интернета мессенджер бесполезен, а с интернетом — с равным успехом можно сидеть и через браузер. Дальше последовали иконки-ярлыки на погодные сайты, на твиттер, на ЖЖ, на наиболее интересные для меня сайты и я проникся системой целиком.

Разница в функционале практически незаметна. При этом я имею **длинный список приложений** по цене одного firefox, который все равно стоит у меня по дефолту. Это не только экономия пространства — это позволяет:

— не качать каждый раз мегабайты апгрейдов и обновлений, когда выходит новая версия софта

— не думать про пароли и логины. firefox синхронизирует их с десктопной версией — и необходимость каждый раз при сбое вводить все заново здорово раздражает

— полный контроль за трафиком. проблема андроидного софта в том, что он считает себя умным и приоритетным — и каждый раз на включении интернета выкачивает свежую версию погоды, список пользователей он- и офф-лайн, список новостей и обновлений и несть этому конца и края. кое где (кое! где!) это лечится установкой правильных галочек и опций, но это заведомо лишние телодвижения (см пункт про логины и пароли), а чаще это не лечится вообще

— last but not least: полный контроль за поведением софта. если вам знакома ситуация, когда вы выходя в интернеты чтобы посмотреть прогноз погоды получаете сообщение из мессенджера (или почту от шефа, например) — и залипаете на час — вы меня понимаете. а у того же мессенджера есть мерзкая привычка включаться в онлайн каждый раз, когда этот онлайн появляется.

Словом ярлык на сайт, с моей скромной точки зрения, сильно лучше, чем андроидное приложение для оного сайта.

И оценивая это, я начинаю понимать, что FirefoxOS это не такая уж и плохая идея, как принято думать.


Cleanup is automatic

2015-06-24

Еще немного о информационной перегрузке и о работе с информацией. Больше двух лет назад (в ноябре 2012-го) я натолкнулся на совет — делать большую часть временных вещей в папке /tmp. Эта папка доступна отовсюду, к ней удобно доступаться из командной строки и — самое главное — она очищается при перезагрузке машины. Я последовал совету и настроил /tmp, как дефолтную папку для загрузки файлов из firefox. Сначала меня одолевали сомнения — как это так, компьютер будет удалять мои загрузки без моего ведома, кто в конце концов тут хозяин — человек или машина? И так далее и тому подобное. После первых пары дней практики я изменил свое мнение.

Оказалось это — не только чертовски удобно, но и меняет подход к проблеме. До этого мне приходилось ежемесячно расчищать завалы в папке ~/Downloads — времязатратное, выматывающее занятие. Если кто-то расчищал подобный хлам — он меня поймет. Теперь же приходилось принимать решение сразу — если загруженный файл не скопировать куда-нибудь еще — при перезагрузке система его сотрет. Когда начинаешь копировать файл — решение о том, куда его определить приходит само и файл ложится не в папку «посмотреть_позже_когда_нибудь_в_долгом_ящике_с_котом_за_хвост», а строго на отведенное ему место. Кроме того, как оказалось, в 90% случаев файл загружается не для того, чтобы его куда-то сохранить, а для того, чтобы его просмотреть или прослушать. Если раньше при разборе таких файлов у меня срабатывал «Внутренний хомяк» («может стоит оставить его на всякий случай, а вдруг эта накладная еще пригодится… в будущем… моим потомкам»), то в этом случае проще предоставить файл самому себе и очищающей перезагрузке.

Система стимулировала принимать решение о утилизации загруженного файла сразу, на месте, причем дополнительным благом было то, что в случае различного информационного мусора решение можно было не принимать вообще. Сейчас я вообще не трачу время и силы на сортировку загрузок — нет необходимости. Единственной проблемой остаются неразобранные залежи старых файлов и папка с торрентами, где такой подход не работает.

Max Tabs, который я себе поставил, работает аналогичным образом. Лимит на количество открытых вкладок заставляет сразу принимать решение — чтобы открыть одиннадцатую вкладку, какую-то из десяти нужно закрыть. Просто закрыть? Добавить в закладки? Сохранить для чтения? Словом тот же подход — «решай или закрывай». Дополнительным бонусом — быстрая работа браузера.
Вот еще бы было расширение, которое бы очищало «неподшитые закладки» скажем раз в месяц — было бы совсем здорово.


Max Tabs и концентрация

2015-06-23

Заметил, что очень много энергии в последнее время тратится на соцсети и политику. В порядке эксперимента поставил себе Max Tabs и оставил дефолтные десять вкладок (может быть потом сокращу или расширю — практика покажет). Так же хочу поэкспериментировать с Личблоком — он у меня стоит давно, но толком я его не настраивал.

Об этом всем я подумывал давно — сейчас после статьи Почему мы больше не можем читать? решил заняться информационной гигиеной вплотную. После этой же статьи выкачал себе «The Organized Mind» Дэниэла Левитина. Штудирую. Плюс к этому (как-то оно все сходится, когда начинаешь изучать вопрос) — хороший обзор Никласа Карра у Москалюка (хотя с «разоблачениями» Талеба и Гладуэлла я не согласен :) и — заметка на австралийском Лайфхакере зачем ограничивать количество вкладок.

Похоже, что «многозадачность» сиречь быстрое переключение контекстов (вот это вот клик-клик-клик по табам) — очень энергозатратный процесс и некоторые ограничения должны принести пользу. Пожуем-увидим.


Чтение электронных книг — 2.5

2015-02-19

или «Dropsync не нужен»

В предыдущей серии ваш покорный слуга описывал свою систему, в которой чтение и архивация небольших заметок (в противовес чтению «больших книг» и книг, сгенерированных из собственных заметок) опирается на .epub и .maff форматы (по сути — зипованные .html) и творческое использование dropbox. Некоторое время назад я отказался от dropsync’а в пользу синхронизации через usb с помощью Unison. Причины, технические подробности, плюсы и минусы перечислены в предыдущей статье.

Вынужденное изгнание и смартфон меняют стереотипы. Смартфон, как «девайс в том числе для чтения» постепенно перетягивает одеяло на себя. Я привык читать с небольших экранов (Palm + WeaselReader), а смартфон (в отличие от более громоздкой читалки) постоянно с собой. Кроме того, появились программы вроде Dimmer’а которые позволяют настраивать яркость и цветовую гамму (например, убирать пресловутый «синий свет») — что сильно сокращает разрыв по разнице в качестве чтения.

Еще у смартфона есть симкарта и (почти всегда) бесплатный gprs-интернет. Сейчас у меня дошли руки до установки dropbox’а (я стараюсь держать на телефоне как можно меньше программ) — и я понял, что мне не нужен не только dropsync (см предыдущую заметку), но скорее всего и синхронизация заметок по шнурку.

На смартфоне интернет есть практически везде и всегда. Epub копеечные по размерам — и даже плохонького gprs вполне хватает для вытягивания файлов «по одному за раз». Прочие операции (удаление-переименование-сортировка) тоже можно делать без доступа ко всему архиву сразу — в самом приложении.
Большие заметки, которые хочется читать в отсутствии сети можно скопировать в отдельную папку, или (сейчас это проще) пометить «звездочкой» — и dropbox будет держать их на диске все время. Получается самое то, при минимальном использовании трафика.


Чтение электронных книг — 2

2014-12-12

В предыдущей заметке о чтении, я разделил свои материалы для чтения на три основные категории: большие книги, мои собственные заметки (в виде Большого Текстового Файла) и «клипы» или «вырезки» — набор разношерстых html-страничек, посты, микротексты, микрозаметки и так далее. Если с большими книгами и большим файлом все было более или менее понятно, то промежуточная категория — заметки, «клипы» и вырезки, была совершенно неопределенной и требовала осмысления.

За прошедший год система чтения изменилась. Многие моменты назрели уже давно, фундаментальным поворотом стал момент, когда я оказался в Метрополии с очень плохим интернетом. Связь через некоторое время наладилась, но момент вынужденной автономности и некоторые исследования, попавшие в мое поле зрения, заставили задуматься.
Читать далее…


комстрока в firefox

2013-10-25

В firefox начинают появляться полезные приложения для командной строки. Например, оказывается оттуда можно сделать скриншот видимой части страницы или ее всей полностью.

По ссылке можно посмотреть подробную инструкцию. Если коротко, открываем командную строку (Shift+F2) и набираем screenshot либо screenshot —fullpage Как и у всякой уважающей себя command-line поддерживаются автодополнение по табу и help screenshot. Теперь можно грохнуть одну лишнюю плагинку :)


%d такие блоггеры, как: