Ускоряем Ubuntu. Оптимизация работы подкачки (swap) в Ubuntu — Linux. Оптимизация linux


Оптимизация Linux для desktop и игр / СоХабр

В этой статье я хочу поделиться почти 10-летним опытом использования Linux на домашнем компьютере. За это время я провел много экспериментов над ядром, испробовал различные конфигурации для разных применений и теперь хочу все это систематизировать в длинный пост с рекомендациями как выжать из linux максимум и добиться отличной производительности, без необходимости покупать мощное железо.

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

Хоть я и пообещал, что после прочтения этой статьи, можно будет играть в Metro 2033 на калькуляторе (шутка, такого не будет), все же она начнется с рекомендации купить кое-что из железа, если у вас этого еще нет.

1. Купите SSD, если у вас его еще нет
Почему-то многие люди скептически относятся к SSD, хотя это первый и важнейший компонент компьютера, который собирается быстро работать.

Серьезно, все что описано дальше в статье даст вам какой-то прирост в производительности и времени отклика, но любой, даже самый дешевый SSD, сократит время запуска большинства программ до 0, что, визуально, будет очень заметно. Почти в любом компьютере (и сервере) главный тормоз это всегда дисковая подсистема и никакой HDD никогда не даст вам нужной скорости поиска (которая у SSD стремится к 0 мс). За все время общения с компьютерами и их апгрейда, только переход на SSD дал значительный прирост в скорости работы и отклике. Помните как медленно работают дискеты, какое у них огромное время поиска? Примерно вот так воспринимается жесткий диск после SSD.

Так что если у вас еще нет SSD, то продолжать дальше смысла нет, ваш компьютер (хоть даже оснащенный 12-ядерным Xeon’ом) все равно будет работать медленно, так что вперед за покупками.

Касательно надежности: есть миф что SSD умирают спустя год. Его рождению мы обязаны первым SSD на бажных чипах SandForce. Естественно, любой новый SSD из магазина как минимум надежнее и долговечнее современных жестких дисков, так что не стоит беспокоиться по этому поводу вообще. Свой SSD я купил 2 года назад б/у, на то время он был в использовании год. Сейчас у него 11 681 часов наработки и использование ресурса 10%, так что при том же режиме использования, мне его хватит еще на 27 лет. Думаю, к этому времени технологии хранения данных уже несколько раз изменятся. Так что повторюсь, проблемы с надежностью более чем надуманы.

Более подробно о мифах SSD расписал товарищ Вадим Стеркин в своём блоге. Правда, блог у него о Windows, но сути это не меняет. Настоятельно советую почитать, очень интересно.

В Ubuntu 14.04 SSD работают из коробки, опция discard автоматом прописывается в fstab, кроме этого больше ничего не нужно делать. В других дистрибутивах нужно проверять, есть ли эта опция у разделов на SSD. Стоит упомянуть, что данную опцию поддерживает только ext4. Для других ФС придется пользоваться fstrim из планировщика.

2. Таблица разделов
Не делите диски на разделы.

Для домашнего компьютера это бессмысленно и вредно. На SSD у вас должен быть один раздел для корня, там у вас будет хранится система и все данные. На HDD (если нужен) у вас должен быть один раздел с точкой монтирования в /mnt (у меня /mnt/data), где будут хранится большие малоиспользуемые данные (фильмы, музыка, игры). НЕ НУЖНО делать HDD точкой монтирования /home, так как в /home 99% программ хранит свои данные и постоянно к ним обращается, поэтому /home должен быть на SSD.

Повторюсь кратко: на SSD у вас должно быть все, к чему система постоянно обращается (пишет/читает)!

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

Насчет SWAP-раздела: он вам не нужен. Если у вас не хватает оперативной памяти, то OOM-killer будет прибивать ресурсоемкие приложения, если это происходит то докупите оперативки, благо ее цена не сильно кусается. Использование swap как расширителя оперативной памяти значительно замедляет работу компьютера. Есть много мнений, что без SWAP будут какие-то проблемы, но ИМХО, корни эти разговоров растут от Win9x и на сегодня это уже мифы, лично я не замечал никаких проблем от отказа от SWAP. Как пруф: на VPS сейчас редко увидишь подключенный SWAP и работают же как-то! suspend-to-disk вам тоже не нужен, потому что холодный старт с SSD быстрее чем восстановление из спячки с HDD, так что пользуйтесь suspend-to-ram или выключайте компьютер полностью. Единственный плюс от свапа — возможность уйти в гибридную спячку, это когда система готовится к suspend-to-disk, но выполняет suspend-to-ram, так что позже, если все хорошо, идет простой выход из спячки, а если произошел сбой питания — то система восстановится с диска.

Я использую везде файловую систему ext4, так как с другими мне не удалось получить заметной разницы в производительности, а ext4 наиболее распространена, плюс имеются утилиты для восстановления данных (но не надейтесь на них, а делайте бэкапы). При создании используйте -T largefile или largefile4.

3. Используйте 64-битное ядро
От производительности оперативной памяти мало что зависит, от нее не увеличится FPS в играх и не станут быстрее запускаться приложения. Использование 64-битных приложений тоже не дает никакого прироста для обычных задач, только для очень специфичных математических расчетов и операций архивирования. Также, использование 64 ядра не требуется для адресации более 4 ГБ памяти, PAE позволяет адресовать до 64 ГБ памяти на 32 битной системе.

Но используя 64-битное ядро, приложения могут адресовать больше чем 4 ГБ памяти, что довольно полезно, так как иначе может возникать ситуация когда OOM-killer будет прибивать программы, хотя оперативки еще достаточно. Также на 64-битной системе можно адресовать сразу же всю физическую память, на 32 битной же все что выше ~800 МБ надо постоянно ремапить, что несколько снижает скорость страничного обмена, хотя, как я уже сказал, это особо не влияет на скорость работы.

Еще замечал эффект, что OOM-killer может прибивать процессы, которые вроде бы еще не заняли 4 ГБ. У меня такое было с некоторыми играми. Проблема решилась переходом на 64 бита. Так что без 64-битного ядра уже никуда, хоть это и добавляет небольшие накладные расходы на использование памяти.

4. Используйте патсет pf-kernel
pf-kernel — это набор патчей для ядра linux, собранные украинцем Александром Наталенко (pfactum) направленные на улучшения desktop-experience linux-систем.

Он состоит из:

Наиболее полезными являются патчи BFS и BFQ, про которые уже очень много написано. BFQ борется с проблемой тормозов системы во время выполнения больших дисковых операций (знаменитый баг 12309, который по документам исправлено, но по факту продолжает досаждать), BFS — планировщий процессов, более подходящий для десктопной работы, чем те что идут в ядре. Например CFS, который используется по умолчанию допускает ситуацию, когда 2 процесса, которые требуют приоритет реального времени будут исполнятся на одном ядре, хотя другие ядра заняты низкоприоритетными задачами. Естественно, такое поведение приводит к глобальным тормозам. Зато «честный планировщик». BFS не такой «честный», но зато намного более приближен к реалиям настольных компьютеров с небольшим (большое — это 4096) количеством ядер.

Для установки, я качаю с kernel.org необходимую версию ядра без стабилизационнх патчей и накладываю на него pf-kernel. В общем случае это выглядит так:

cd /usr/src wget ftp://ftp.kernel.org/pub/linux/kernel/v3.x/linux-3.12.tar.xz tar -xf linux-3.12.tar.xz cd linux-3.12 wget https://pf.natalenko.name/sources/3.12/patch-3.12.4-pf.bz2 bunzip2 patch-3.12.4-pf.bz2 patch -p1 < patch-3.12.4-pf Это очень важный патчсет, именно он позволяет системе быть отзывчивой, даже в моменты большой нагрузки. В результате, например, даже при максимальной нагрузке, время запуска приложений остается таким же, как и при простое!

Вот, например, скриншот htop при работе Dota 2 + The Sims 3 (multiseat):

При такой нагрузке на третьем экране можно спокойно работать и 25% (в 5-минутном окне по данным load-average) перегрузка CPU даже не чувствуется. Хотя, конечно, проц надо менять :(

5. Тюнингуйте ядро!
В ядре по умолчанию используются не очень оптимальные параметры, обусловленные историческим предназначением linux для серверов и доступности для отладки.

Так что делайте make xconfig

Я расскажу о наиболее важных опциях для оптимизации

Выключаем preemption, устанавливаем низкую частоту таймера и выключаем dynticks!

ДА! Мы действительно, даже вопреки документации к BFS отключаем «жизненно важные» опции для повышения отзывчивости системы. А причина в том что они — устарели, толку от них никакого и к тому же preemption негативно влияет на производительность.

Было время, когда у меня был одноядерный процессор, тогда еще в готовых ядрах не включали preemption и высокочастотный таймер, вот тогда, после включения этих опций был огромный эффект. А именно, тяжеловесное приложение, занимающее 100% CPU, даже при наличии дискового ввода-вывода и нехватке ОЗУ никак не влияло на интерактивность и отзывчивость. В те времена, еще кроме WinXP ничего не было, а подробно рассказывать как ужасно себя ведет XP в таких ситуациях, думаю, не надо, она обычно намертво виснет, заставляя тянуться к кнопке reset. Так что иметь систему, которая почти никогда не тормозит и не зависает было приятно.

Но те времена прошли, многоядерные процессоры и огромные объемы памяти сами по себе решают проблемы отзывчивости под нагрузкой, так что дополнительно решать их программными средствами не только бесполезно, но и вредно.

Так что идем в Processor type and features и выбираем для параметра Preemption Model значение No Forced Preemption (Server). Не пугаемся фразы «ocasional longer delays are possible» потому что данную проблему у нас эффективно решает BFS и многоядерный процессор. Как и написано в описании, мы выигрываем в «raw processing power».

Также, в целях оптимизации, для параметра Processor family выберите свой процессор.

Далее, устанавливаем для параметра Timer frequency значение 300 HZ. 100 все же будет маловато, да и смысла особого нет (читайте в описании почему), но вы можете поэкспериментировать. Также, 300 Гц нацело делится и на 25 и 30, что является типичными частотами для видео, это вносит свой вклад в борьбу с тирингом (это из хелпа. По факту, с тирингом успешно борется только тройная буферизация + vsync).

В этом разделе есть немало интересных опций, посмотрите, например можно выключить hot-plug для cpu и памяти, так как на десктопе это просто невозможно сделать (а выключать-включать на лету ядра редко кому нужно).

Так как у меня не ноутбук, я выключаю все что связано с энергосбережением, то есть к примеру выключаю поддержку CPU Frequency scaling вообще.

Теперь отключим динамический таймер. Не уверен точно, так как не проверял конкретно, но похоже именно эта опция приводит к постоянным «подергиваниям» на некоторых видео и особенно в играх. Так что идем General setup -> Timers subsystem и для опции Timer tick handling выбираем Periodic timer ticks (constant rate, no dynticks).

Включаем BFQ

По умолчанию BFQ выключен и его надо включить а также выбрать используемым по умолчанию.

Идем Enable the block layer -> IO Schedulers включаем опции BFQ I/O scheduler и BFQ hierarchical scheduling support, для опции Default I/O scheduler выбираем, очевидно, BFQ.

6. Prelink
Можно предварительно связать с исполняемыми файлами динамические библиотеки, что позволяет еще более уменьшить время запуска приложений. По этой теме есть отдельная статья от peter23.
7. Заключение
Самое главное, что я всегда замечаю — после наложения патчсета и тюнинга ядра уходят «подергивания» в играх. Чем слабее железо, тем заметнее эти подергивания, хотя у меня есть подозрения что это все же какая-то проблема в драйверах nVidia, потому что разные версии ведут себя по-разному.

Ради пруфов решил провести тесты с помощью Geekbench 3 из Steam и gputest, результаты которых немного странные:

3.14-pf: Single-Core Score 2421 Multi-Core Score 8209 gputest: 3720 pts, 62 FPS

3.13-generic: Single-Core Score 2646 Multi-Core Score 8414 gputest: 3713 pts, 61 FPS

Windows: Single-Core Score 2572 Multi-Core Score 8242 gputest: 3634 pts, 60 FPS

Как видно, почему-то на «оптимизированный» вариант в тесте CPU набирает меньше попугаев, а в тесте GPU — больше. Только сейчас я заметил что тестировал разные ядра, возможно в этом и причина различий результатов. Как будет время, проведу эти же тесты на 3.16, надеюсь, удастся найти причину. Самое же веселое тут в том, что у Windows результаты хуже, особенно в 3D значительно.

sohabr.net

Чистка и оптимизация Ubuntu Linux

Слегка бредовый заголовок, не так ли? 🙂 Опытные пользователи явно усмехнутся, а новички будут рады. А всё из за того, что сидя в Windows постоянно нужно было чистить и оптимизировать ОС, что бы она не тормозила банально из за "захламления" старыми файлами, ненужными ключами в реестре и прочим. Просто когда сам только пересел с Windows на Ubuntu пытался найти маны по оптимизации и прекрасно понимаю новичков.

Однако в Ubuntu всё равно нужно иногда производить чистку системы от кеша со старыми пакетами (я для этого пользуюсь Ubuntu Tweak), с чем программа BleachBit, описываемая ниже, прекрасно справляется. Так же она способна подчистить ещё множество других временных файлов, кеш приложений и другие "мусорные" места. Понравилась функция чистки файлов Thumbs.db, которые Windows создаёт везде и всюду. Обзор программы ниже.

При работе операционной системы в ее разных темных уголках неминуемо накапливается мусор. Это могут быть остатки удаленных программ, временные файлы, логи, кеш браузеров и другие никому не нужные вещи. Далеко не весь этот мусор можно собрать и выбросить вручную, поэтому для этого используются специальные программы-чистильщики. Тема наведения чистоты в Windows довольно хорошо освещена, поэтому поговорим об уборке в Ubuntu.

Стараниями некоторых проповедников open source создалось мнение, что Linux является супер надежной и совершенной системой, которая даже не нуждается в обслуживании, в отличие "от этой вашей винды". Однако это совсем не так, и грязи, например, в Ubuntu накапливается не менее, а может и поболее чем в Windows. Поэтому для очистки места на диске, ускорения системы, безопасного удаления данных лучше воспользоваться утилитой BleachBit.

BleachBit – это удобная бесплатная программа для очистки системы, которая имеет версии как для Linux, так и для Windows. Утилита имеет простой и понятный интерфейс на русском языке. Все пункты снабжены подробными подсказками, так что ее использование не вызовет вопросов даже у начинающих пользователей.

Принцип работы с программой очень прост и сводится к выбору опций очистки с помощью чекбоксов в средней колонке. После этого можно нажать  кнопку "Предпросмотр" для поиска мусора и затем "Удалить" для его удаления. У меня программа буквально за несколько секунд нашла более гигабайта ненужных файлов.

Кроме обычного поиска и удаления мусора BleachBit умеет выполнять и целый ряд специальных операций:

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

В целом, BleachBit является незаменимым помощником для поддержания вашей системы в чистоте и освобождении дополнительного места на жестком диске.

Установить программу можно из Центра приложений Ubuntu или скачав инсталляционный файл с сайта программы. Там же доступна для загрузки и версия для Windows, которая умеет подчищать следы работы более чем за 500 программами и является достойным конкурентом Ccleaner.

Источник: lifehacker.ru.

Друзья, ваше мнение? Такие программы - хлам, или они нужны?

ubuntovod.ru

Ускоряем Ubuntu. Оптимизация работы подкачки (swap) в Ubuntu — Linux

Известно, что в современных операционных системах используется такая технология, как виртуальная память, разработанная для многозадачных ОС.

В ОС семейства Windows файл, служащий для хранения неиспользуемой оперативной памяти в области жесткого диска, именуется «файлом подкачки» (pagefile.sys).

Его организация реализована далеко не лучшим образом (мягко говоря!). В ОС Linux еще при установке создается отдельный раздел подкачки — «Swap», что гораздо лучше.

Файл подкачки Windows и Linux-swap, располагаются на HDD (жестком диске). Когда оперативной памяти становиться недостаточно, происходит выгрузка страниц памяти из ОЗУ на жесткий диск, а когда вы снова обращаетесь к файлам, находящимся в разделе подкачки (swap), они снова загружаются в оперативную память.

Вся проблема в том, что скорость чтения-записи жесткого диска HDD (даже самого быстрого) В РАЗЫ меньше скорости оперативной памяти. Вот это и ведет к замедлению работы компьютера и снижению производительности в целом.

Здесь есть два способа решения этой проблемы: использовать большие объемы ОЗУ или правильно настроить работу системы с файлом подкачки и swap.

Итак, в Ubuntu есть такой параметр, который контролирует процент свободной памяти, при которой начнется сброс страниц памяти в swap — vm.swappiness.

В Ubuntu по умолчанию он имеет значение равное — 60. Это означает, что при 40% занятой оперативной памяти начнется активный сброс страниц памяти в раздел swap, т. е. 100% — 60% = 40%.

Проверить, каково значение параметра у вас, можно следующим образом.

Открываем терминал комбинацией клавиш Ctrl+Alt+T и выполняем команду:

cat /proc/sys/vm/swappiness

Такое значение параметра может быть полезно только для компьютеров с малым количеством оперативной памяти  (512 -1024 МБ).

Если у вас современный компьютер или ноутбук с большим объемом ОЗУ (4-6, а то и 8 ГБ), то это вам вряд ли подойдет.

На многих форумах и блогах, посвященных Ubuntu рекомендуется выставить значение параметра  vm.swappiness = 10 (т. е. 100% — 10% = 90%).  Но, по моему личному опыту, при наличии оперативной памяти объемом в 6 ГБ можно повести себя и по-агрессивнее, выставив значение равным 0. В данном случае система будет обращаться к разделу swap только в крайнем случае.

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

Сделать это можно так.

Опять же открываем всемогущий терминал  комбинацией клавиш Ctrl+Alt+T и выполняем в нем  следующую команду:

sudo sysctl vm.swappiness=

После знака равенства выставите значение от 100 до 0 (в зависимости от объема вашего ОЗУ).

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

После того, как вы подобрали для себя наиболее удачное значение, необходимо установить новое значение в качестве постоянного. Копируем и выполняем следующую команду в терминале:

sudo gedit /etc/sysctl.conf

Перед вами откроется конфигурационный файл в текстовом редакторе gedit. В конце этого файла вставляем два следующих параметра без решетки перед ними:

vm.swappiness=0 vm.vfs_cache_pressure = 1000

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

Перезагружаем компьютер. После перезагрузки выполняем в терминале:

sudo sysctl -p

Я, как уже было отмечено выше, выбрал параметр равным 0, фактически отключив раздел swap, т. к. для моего компьютера с шестью гигабайтами ОЗУ он оказался наиболее оптимальным. Вы можете выбрать значение параметра равным 10, как это рекомендовано на многочисленных форумах.

В качестве примера мне бы хотелось продемонстрировать загрузку оперативной памяти в Ubuntu 12.10 x64 с 6 ГБ ОЗУ.Итак, я открыл три браузера — штатный Mazilla Firefox, Opera и Google Chrome с общим количеством вкладок около 40, аудиоплеер Clementine (кстати, довольно требовательный к ресурсам компьютера), Skype, торрент-клиент qBittorrent.И вот скриншот htop (это довольно продвинутый консольный монитор процессов). Для установки набираем в терминале

sudo apt-get install htop

Я думаю, что все становится понятно: занято менее половины установленной оперативной памяти.Поэтому если у вас много ОЗУ, то использовать раздел подкачки не имеет никакого смысла. Это будет только замедлять скорость работы компьютера!В заключении могу сказать, что это не единственное, что можно сделать для ускорения работы Ubuntu. Об этом в следующих статьях. Подписывайтесь на RSS — канал!Отличного настроения, быстрой работы компьютера и с наступающим Новым годом!В качестве приятной неожиданности сегодня видео о том, каким увидели уходящий год сотрудники компании Google.

glazdik.ru

Оптимизация Linux под нагрузку. Кэширование операций записи на диск.

Недавно на одном из виртуальных серверов столкнулся с проблемой долгой записи на диск. И под эту тему нашел интересную статью, в которой подробно рассмотрен вопрос функционирования кэширования операций записи на диск в Linux. Сегодня будет перевод этой статьи.

Кэширование в Linux

При записи данных на диск (любой программой) Linux кэширует эту информацию в области памяти, называемой Page Cache (страничный кэш). Информацию об этой области памяти можно посмотреть с помощью команд free, vmstat или top. Полную информацию об этой области памяти можно посмотреть в файле /proc/meminfo. Ниже приведен пример этой файла на сервере с 4-мя GB RAM:

MemTotal: 3950112 kB MemFree: 622560 kB Buffers: 78048 kB Cached: 2901484 kB SwapCached: 0 kB Active: 3108012 kB Inactive: 55296 kB HighTotal: 0 kB HighFree: 0 kB LowTotal: 3950112 kB LowFree: 622560 kB SwapTotal: 4198272 kB SwapFree: 4198244 kB Dirty: 416 kB Writeback: 0 kB Mapped: 999852 kB Slab: 57104 kB Committed_AS: 3340368 kB PageTables: 6672 kB VmallocTotal: 536870911 kB VmallocUsed: 35300 kB VmallocChunk: 536835611 kB HugePages_Total: 0 HugePages_Free: 0 Hugepagesize: 2048 kB

Размер Page Cache показан в параметре "Cached", в данном примере он составляет 2,9 GB. При записи страниц в память размер параметра "Dirty" увеличивается. При начале непосредственно записи на диск будет увеличиваться параметр "Writeback" до тех пор, пока запись не закончится. Достаточно сложно увидеть параметр "Writeback" высоким, так как его значение увеличивается только во время опроса, когда операции ввода/вывода (I/O) поставлены в очередь, но еще не записаны на диск.Linux обычно записывает данные из кэша на диск с помощью процесса pdflush. В любой момент в системе запущено от 2 до 8 потоков pdflush. В файле /proc/sys/vm/nr_pdflush_threads можно посмотреть сколько в данный момент активных потоков. Каждый раз все существующие потоки pdflush заняты по крайней мере 1 секунду. Новые потоки пытаются записать данные в свободные очереди устройств, таким образом, чтобы на каждое активное устройство был 1 поток сбрасывающий данные из кэша. Каждый раз по прошествии секунды без какой либо активности со стороны pdflush убирается 1 поток. В Linux можно настроить минимальное и максимальное количество pdflush потоков.

Настройка pdflush

Каждый поток pdflush контролируется несколькими параметрами в /proc/sys/vm:

Итого: Когда pdflush начинает запись?

В конфигурации по умолчанию, данные, записываемые на диск, находятся в памяти до тех пор пока:

Если на сервере операции записи происходят часто, то однажды будет достигнут параметр dirty_background_ratio, и вы сможете увидеть, что вся запись на диск идет только через этот параметр не дожидаясь истечения параметра dirty_expire_centiseconds.

Процесс записи страниц

Параметр /proc/sys/vm/dirty_ratio (default 40): Максимальный процент общей оперативной памяти, который может быть выделен под страничный кэш, до того как pdflush будет писать данные на диск.

Примечание: Во время записи на диск все процессы блокируются на запись, не только тот который заполнил буфер на запись. Это может вызвать спровоцировать блокировку одним процессов всех операций вводы/вывода в системе. Провести этот

Рекомендации по оптимизации Linux для операций, требующий частой записи

Обычно люди при попытке увеличения производительности дисковой подсистемы сталкиваются с проблемой, что Linux буферизует слишком много информации сразу. Это особенно трудно для операций, требующий синхронизации файловой системы, использующих вызовы fsync. Если во время такого вызова в кэше много данных, то система может "подвиснуть" пока не закончится этот вызов.Другая частая проблема происходит потому что слишком много требуется записать до того, как начнется запись на физический диск, операции ввода/вывода происходят чаще, чем при нормальной работе. Вы получите более долгие периоды, когда запись на диск не происходит, пока большой кэш не будет заполнен, после чего сработает один из триггеров pdflush и данные запишутся на максимальной скорости.

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

dirty_ratio: Второй по значимости параметр для настройки. При значительном снижении этого параметра приложения, которые должны писать на диск, будут блокироваться все вместе.

dirty_expire_centisecs: Попробуйте уменьшить, но не сильно. Позволяет уменьшить время нахождения страниц в кэше до записи на диск, но это значительно снизит среднюю скорость записи на диск, т.к. это менее эффективно. Это особенно проявится на системах с медленными дисками.

Инструкция по настройке параметров

В файле /etc/sysctl.conf вносим, например:

vm.dirty_background_ratio = 10 vm.dirty_ratio = 40

После синхронизируем данные кэша и диска, очистим кэш и сохраним параметры.

sync; echo 3 > /proc/sys/vm/drop_caches; sysctl -p

drupal-admin.ru

Оптимизация Ubuntu (1)

Bleachbit очистка системного мусора.

Автор: admin.

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

Подробнее...

Ускорение сворачивания окон через DConf-editor.

Автор: admin.

  В текущей версии «Ubuntu 12.10» по умолчанию, установлена функция плавного сворачивания окон. Данная особенность была применена именно в этом релизе и надо сказать, что у многих, вызвала не очень положительные эмоции, т.к. создается впечатление несколько заторможенного сворачивания. Для проведения необходимых мероприятий, нам понадобится утилита «dconf-editor (dconf)». Если программа не установлена, то установите через «центр приложений» или через терминал:

Подробнее...

FSlint - очистка файловой системы.

Автор: admin.

  FSlint - очень мощная утилита для поддержания файловой системы в надлежащем состоянии. Программа достаточно сложна, начиная с самого интерфейса, который воспринимается как-то тяжело и заканчивая самим пониманием того, что нужно делать и как нужно делать, что бы не сделать того, чего не нужно делать. Эта утилита в большей степени расчитана на использование среди системных администраторов, в крайнем случае среди достаточно продвинутых пользователей, ну и совершенно не годится для новичков и начинающих.

Подробнее...

GConf Cleaner очистка баз данных ключей.

Автор: admin.

  GConf Cleaner еще одна программка, для очистки и поддержания системы в хорошем рабочем состоянии. Эта утилита, чем-то напоминает очистку реестра в Windows. Она предназначена для удаления не используемых, не с чем не связанных ключей, базы данных GConf. Утилита проводит быстрое сканирование баз данных и выстраивает перечень некорректных ключей, которые предлагается удалить, предварительно создав резервную копию. Вот пошаговая инструкция:

Подробнее...

Mundus - очистка системы Ubuntu.

Автор: admin.

  В Ubuntu очистка системы, процесс весьма разносторонний и для этих целей придумывались и придумываются разные программы: «Ubuntu Tweak», «Bleachbit», «Sweeper» и другие. Еще одним представителем данного класса утилит, является программа «Mundus» - тоже, относится к числу программ-чистильщиков, но с узко-специфической направленностью.

Подробнее...

Удаление миниатюр изображений, создаваемых системой.

Автор: admin.

  Вообще, очистка системы Ubuntu, мною затрагивалась, более полноценно в этой статье: http://www.linux-info.ru/avtomaticeskaja-ocistka.html. Сейчас же, я хочу лишь дополнить все это еще одним небольшим материальчиком относительно того, что можно безболезненно вычищать из системы, т.к. при написании вышеупомянутой статьи, данный аспект был упущен из виду.

Подробнее...

Sweeper - утилита очистки.

Автор: admin.

  Sweeper - еще одна очередная утилита для очистки системы. Программа очень проста, как в управлении, так и в своем функционале и конечно же, не может сравниться с более мощной в этом отношении «Bleachbit» или скажем «Ubuntu Tweak», имеющим в своем содержании отдельный раздел по очистке. Надо сказать, что программа сама по себе, уже довольно старенькая и какого-то ее развития, тоже не наблюдается, но кое-что она все-таки еще умеет, поэтому, как дополнительный инструмент, ее можно вполне безболезненно использовать, как говорится - от очистки очищенного, грязнее не станет.

Подробнее...

Ускорение Ubuntu.

Автор: admin.

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

Подробнее...

e4defrag - дефрагментация «ext4» в Linux.

Автор: admin.

  Вообще, вопрос необходимости дефрагментации в Linux, существовал наверное с самого начала появления Linux, причем, постоянные споры о том, нужна ли дефрагментация в операционной системе Linux или нет, остаются актуальными до сих пор. Сторонники дефрагментации яростно отстаивают свои позиции, приводя конкретные доводы, подтверждающие неизбежность этой процедуры, противники же, наоборот утверждают, что в этом действии нет необходимости, т.к. "ОС" «Linux», якобы практически не подвержена фрагментированию.

Подробнее...

e4rat - ускорение загрузки Ubuntu.

Автор: admin.

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

Подробнее...

 

1 2

 

www.linux-info.ru

Админский бубен Ярослава Стаценко - Оптимизация Linux

Кнопка сайта
Статистика

Онлайн всего: 1

Гостей: 1

Пользователей: 0

Оптимизация Linux

Бредисловие.

В последнее время в разного рода конференциях по линуксу возникает флейм по поводу того, что линукс типа сакс, отстой и полные тормоза и что винда была, есть и будет форева. Ярые сторонники этой мысли при скромном вопросе — а вы линух-то свой оптимизировали вообще? — тут же замолкают и спрашивают, на фига это надо — дескать, и без этого грузится вроде, но тормозит… Не стоит наивно полагать, что в конфигурации по умолчанию все прооптимизировано, ибо она настроена так, чтобы работать как на твоем Пентиуме III с кучей прибамбасов, так и на старой трешке. Я не затрону в этой статье «железной» оптимизации (…из нашей статьи вы не узнаете о том, что вешать на один шлейф CD-ROM и хард нехорошо :o)) — я лишь поговорю об оптимизации на уровне софта. Так что вперед — оптимизировать, оптимизировать и еще раз оптимизировать… :-))

Установка.

Возможно, у тебя линукс уже установлен, однако этап установки является одним из важных шагов по оптимизации. В первую очередь, скорость работы зависит от дистрибутива, коих на рынке сейчас великое множество. Каждый из них имеет свои особенности, достоинства и недостатки. Наиболее быстроходным, по моему мнению, является дистрибутив Mandrake, наиболее тормозным — SuSe Linux (как это ни печально). Ядро Mandrake оптимизировано для процессоров Пентиум, так что по сравнению с RedHat он быстрее где-то на 10-15% (по моим субъективным оценкам).Во время установки (в принципе это можно сделать и после, набрав в командной строке ntsysv) можно убрать ненужные сервисы из автоматического старта, тем самым уменьшая время загрузки линукса. Например, из всего что есть в списке, у меня остались сервисы: cron, atd, network, xfs, xfstt.Также еще один важный момент — это использование свапа и его размер. Я думаю, все знают, что когда заканчивается оперативная память (и даже несколько раньше ;-)) при запуске очередной проги, неактивная в данный момент программа свапуется, то есть OS копирует память, занятую этой прогой на хард, очищает память и загружает в нее свежезапущенную программу. Ну так вот, важно правильно выбрать размер свапа: если у тебя 16…32 Mb памяти, то размер свапа должен быть в 3-4 раза больше размера памяти, при 32…64Mb размер свапа где-то в 1.25-2 раза больше объема памяти, при количестве памяти более 64 Mb свап уже включают по желанию. Короче: чем меньше памяти, тем больше должен быть свап. Могу сказать, что у меня, при 128 Mb ОЗУ, свап потребовался только ОДИН раз, и обычно ВСЕГДА где-то 20Mb пребывают свободными.Также попробуй расположить свой своп-диск ближе к началу IDE диска. Hачало жесткого диска физически расположено на внешней части цилиндра. Головка чтения/записи в этом случае cможет покрыть большую область за один оборот диска. Это значит, что может быть записано/считано больше данных за один оборот. У меня разница составляет 3MB/сек в зависимости от местоположения логического диска на IDE устройстве.Раз мы уж заговорили про память, скажу пару слов о «прожорливом» софте. Самые памятелюбивые под линухом (в порядке убывания): StarOffice — 128Mb, Mozilla M1* — 96 Mb, Kde & Gnome — 64 Mb, Netscape 4.x — 32Mb. Так что даже не пытайся поставить староффис на пень с 32 мегами — встать-то он встанет, но пока будет запускаться — успеешь кофе сварить :- (.

Ядро.

Ядро, устанавливаемое по умолчанию, содержит в себе много ненужных для тебя опций, цель которых — заставить его работать почти на любой конфигурации. У нас есть 2 задачи: выкинуть из него все лишнее совсем и выложить то, что нужно для твоего компа, в отдельные модули. Дело в том, что при работе Linux ядро — единственный кусок памяти, который не свапуется, поэтому логично сделать его меньше. Что же выкидывать из ядра? Тут сложно продвинуть конкретные рекомендации — все зависит от конфигурации твоего компа. Но несколько советов я могу дать:

— Установи семейство процессоров в PPro/6x86MX для Pentium II/III систем.— Разреши MTRR для PentiumPro/II/III и AMD K6-2/3 систем. — Запрети багофиксы для чипсетов, которых у тебя нет. Пример: CMD640 и RZ1000.— Разреши Generic PCI bus- master DMA поддержку и использование DMA по умолчанию (Use DMA be defaults).— Разреши поддержку чипсета, который у тебя есть. Пример: VIA82C586 для VIA VP2/3 и MVP3 материнских плат.— Разреши ТОЛЬКО специфичные SCSI контроллеры, которые у тебя есть. Пример: Adaptec AIC7xxx.— Запрети ВСЕ сетевые устройства, поддержка которых тебе не нужна.— Установи максимальное число Unix98 PTYs в 128.— Установи 'persistant dma buffer' в конфигах звука.— Запрети все файловые системы, за исключением: ISO 9660 CDROM,VFAT, Second extended fs, /dev/pts и /proc поддержка.— Запрети все сетевые файловые системы (NFS).— Запрети все консольные драйвера. Исключение: VGA text console.— Запрети Enhanced Real Time Clock поддержку.— Запрети поддержку ISDN. — Запрети поддержку IPv6.— Запрети поддержку Amateur Radio.— Запрети поддержку инфракрасных устройств (IrDA subsystem).— Запрети поддержку джойстиков (Joysticks).— Запрети все Ftape.

Попробуй другие вещи. Отредактируй /usr/src/linux/Makefile: найди строку 'MAKE =make' и измени ее на 'MAKE =make -j5' — так будет использоваться несколько копий make, с которыми на некоторых системах будут быстрей компилироваться программы. Потом измени: 'CFLAGS= -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer' на 'CFLAGS = -Wall -Wstrict-prototypes -O7 -fomit-frame-pointer -fno-exceptions', что включит использование оптимизирующих фишек, которые могут работать или не работать со всеми ядрами (оптимизация кода при компиляции). Ядро желательно брать посвежее и стабильное, например, 2.2.17 — последний стабильный релиз ядра из серии 2.2.* на данный момент.Компиляция его осуществляется командами: make menuconfig (или xconfig, если компилить из-под X [*] — данный параметр ядра будет скомпилирован встроенным в него [M], — означает, что он будет откомпилирован в качестве отдельного модуля, загружаемого по необходимости)

make depmake bzlilomake modulesmake modules_install

Необходимо также заметить, куда скомпилилось новое ядро (у меня это всегда корень), и добавить в файл /etc/lilo.conf строки, дающие возможность загрузить старую версию ядра, если эта криво скомпилена или просто глючит (и такое бывает!):

image=/vmlinuz #путь к новому ядруroot=/dev/hda3 #путь к корню, пишем тот же, что и для установленного системой ядраread-onlylabel=linux_new #название нового типа загрузки

Далее ставим эти 4 строчки ПЕРЕД кодом старого загрузчика (обычно начинающегося с image=/boot/vmlinuz), чтобы твое ядро грузилось первым по умолчанию, и ребутимся. Вуаля! Все должно работать!

Жесткий диск.

Здесь оптимизацию можно разделить на две части: оптимизация производительности харда и оптимизация свободного места на нем. Скажу сразу — лучше устанавливать программы по минимуму, а то потом будешь просто офигевать, заглядывая в папку /../bin и думая, что тебе со всем этим делать. Ибо проще доставить НУЖНУЮ тебе прогу, чем потом удалять кучи прог, которые ты не использовал, освобождая место на винте. Благодаря особенностям файловой системы ext2fs, используемой в линуксе, диск менее подвержен фрагментации, но она все же имеется (у меня она составляет максимум 10%). Если у кого-то она очень большая, то можно скачать дефрагментатор с ftp://metalab.unc.edu/pub/linu/system/filesystems.Далее. Несмотря на стабильность линуха, некоторые проги все-таки падают, давая прибавление на харде в несколько мег путем образования файла core - дамп памяти, с которой работала упавшая программа (они это делают для удобства отладки). Если тебе надо ограничить максимальный размер образа ядра в tcsh — используй команду 'limit'. Hабранная сама по себе, она покажет текущее значение для данного шелла. Также core-файлы могут представлять угрозу для безопасности системы, так как могут содержать куски памяти, содержащие пароли и другую важную информацию. Для отключения сохранения образа ядра при сбоях используй 'limit coredumpsize 0' или добавь в файл конфигурации bash (~/bash_profile) строку 'ulimit -c 0'.Вообще, можно попробовать использовать ReiserFS — журналируемую файловую систему — 'самоизлечивающуюся' при потерях кластеров, связанных с некорректным выходом из системы (кнопка power off?) или перебоях с электропитанием.

И, наконец, оптимизация производительности харда.Для этого есть хорошая команда 'hdparm'. Запустив ее hdparm -t <имя раздела или диска>, можно померить производительность данного раздела (или диска в целом). У этой команды есть много ключей — вот самые интересные:

-d [0|1] включение DMA-c [1|2|3] 16/32bit общение с диском-m количество секторов, считываемое за раз-k сохранение параметров.

Не все из этих опций смогут работать на твоей машине, могут добавиться и другие к моменту чтения тобой этой статьи, но могу сказать одно: поиграв с ними и написав 'hdparm -d 1 -c 3 /dev/hda' и 'hdparm -k /dev/hda', я повысил скорость работы своего диска под линуксом с 3Mb/sec до 12Mb/sec. Типа, апгрейд подождет! Диск — IBMDTTA351010. После того как наиграешься с параметрами и добьешься результатов, создай простой скриптик, вписав в него все, что ты поменял, а потом, сделав его запускаемым, скопируй его в /etc/rc.d/local, чтобы он при каждом старте системы срабатывал автоматически.

X-Window.

Не секрет, что для иксов лучше иметь не менее 16 мег оперативки. Такого же мнения придерживаются и несколько Desktop & Windows менеджеров :0). Самые навороченные из них это AfterStep, WebMaker, IceWM, BlackBox. Что касается моего любимого KDE — то он несколько не торопится при старте на слабой машине. Есть шанс ему помочь, найдя стартовый скрипт - startkde (у меня он лежит в /usr/bin) — и закомментировав строчки «'sleep 2'», говорящие о паузе в две секунды между стартами разных KDE сервисов. Что касается Gnome+Enlightment, то здесь явно ничем хорошим не пахнет, так что лучше не мучить себя и компьютер. На 32 метрах памяти все вышеперечисленное в этом разделе работает весьма сносно.Для ускорения видеокарты в Х можно использовать следующую фичу: требуется процессор pentium pro :0). Смотрим в /proc/pci (cat /proc/pci) :VGA compatible controller: S3 Inc. ViRGE/DX or /GX (rev 1).Medium devsel. IRQ 7. Master Capable. Latency=40. Min Gnt=4.Max Lat=255.Non-prefetchable 32 bit memory at 0xf8000000 [0xf8000000].Видим нашу видеокарту. Теперь мы попробуем увеличить скорость записи в устройство, используя 'write-combining'. Команда, разрешающая 'write-combining' в 4-х меговую область, начинающаяся с 0xf8000000 : 'echo «base=0xf8000000 size=0x400000 type=write-combining» >> /proc/mtrr'.Теперь в /proc/mtrr мы видим следующую новую строчку:reg02: base=0xf8000000 (3968MB), size= 16MB: write-combining, count=1. Если понадобится, можно запретить использование 'write-combining': 'echo «disable=2» /proc/mtrr'. Более подробно об этом можно посмотреть в /usr/src/linux/Documentation/mtrr.txt. Также можно поиграть с нестандартными разрешениями карточки, выжав из нее все — но тут я не советчик, ибо этого САМ не пробовал. Понятно, что перед этим неплохо почитать доку на свою карточку.

В общем и целом.

В оставшейся части я дам несколько общих советов для ускорения Linux'a. 1) Отредактировать inittab, уменьшив число виртуальных консолей - особенно, если можно запускать X-terms. Я еще не видел человека, который бы работал одновременно с шестью консолями и X-Window. Найти следующую строчку: c1:1235:respawn:/sbin/agetty 38400 tty1 linux (Обычно их 6 с c1 по c6) и закомментировать ненужные (только случайно не закометируй все ;))2) Убрать из /dev все ненужные записи — особенно эту тьму разных pty. Кому это надо, когда есть PseudoTerminal Miltiplexor. 3) Отключить inetd/xinetd — зачем он нужен, если нет насущной потребности, скрываясь от полиции в Интернет-кафе «Зимбабве», стереть с жесткого диска важный налоговый документ, подключившись по telnet.4) Убрать лишние шрифты XFree86, поставить шрифты 75dpi, 100dpi, Speedo, PEX, Type1, misc, cyrillic. Реально IMHO нужны 75dpi, misc, Type1. Шрифты cyrillic — вообще довольно низкого качества, гораздо лучше Cyr-RFX (75dpi, misc со встроенной кириллицей).5) Отключить все ненужные сетевые сервисы: sendmail, nfsd, httpd.

 

Взято с http://linux-admin.net.ru 
Иконостас

adminbuben.at.ua


Prostoy-Site | Все права защищены © 2018 | Карта сайта