Maximizing performance (Русский)

From ArchWiki
Revision as of 17:57, 11 December 2011 by Strcat (Talk | contribs) (codeline -> ic)

Jump to: navigation, search

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.


Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어


External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

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

Основы

Узнай свою систему

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

  • Если компьютер начинает медленнее работать при запуске "больших приложений", таких как openoffice и firefox, запущенных одновременно, то существует большая вероятность того, что объем оперативной памяти недостаточен. Чтобы проверить объем оперативной памяти, используйте эту команду:
$ free -m
  • Если время загрузки очень большое и если приложения запускаются медленно при первом запуске, но потом работают нормально, то, вероятнее всего, жётский диск работает медленно. Скорость жесткого диска может быть измерена с помощью команды hdparm:
$ hdparm -t /dev/harddrive

Это только скорость чтения с диска и не является абсолютным критерием, но значение скорости выше 40Мб/с можно считать примелимым для средней системы.

  • Если загрузка процессора постоянно высокая, даже когда есть достаточно оперативной памяти, то снижение загрузки процессора является приоритетной задачей. Загрузку процессора можно контролировать множеством способов, например, используя команду top:
$ top
  • Если медленно работают только те приложения, которые используют ускорение (direct rendering), т.е. используются графический процессор (видео карту), такие как видео плееры и игры, увеличение проивзодительности видео карты должно помочь. Чтобы убедиться в этом, попробуйте запустить эту комаду на 20 секунд:
$ glxgears

Это также не является единственным критерием, но знчние ниже 300fps можно низким для средней системы. Если это так, то, вохзможно ускорение (direct rendering) вообще не включены. Чтобы проверить это введите команду:

$ glxinfo | grep direct

Первое что необходимо сделать

Самый простой и эффектинвый способ повысить общую производительность - это использовать легковесные окружения (Desktop Environment) и легковесные приложения:

Компромисс

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

Жётские диски

Выбор и настройка файловых систем

Выбо лучшей файловой системы под особенности системы является очень важным, так как каждая файловая система имеет свои сильные стороны. В beginner's guide кратко рассматривались наиболее популярные файловые системы. Вы можете также найти полезные статьи здесь.

Резюме

  • XFS: Высокая производительность при работе с большими файлами. Низкая скорость при работе с маленькими файлами. Хороший выбор для /home.
  • Reiserfs: Хорошая производительность при работе с маленькими файлами. Хороший выбор для /var.
  • Ext3: Средняя производительность, надёжность.
  • Ext4: Превосходная общая производительность, надёжность, имеет проблемы с производительностью SQLite и другими базами данных.
  • JFS: Хорошая общая производительность, низкое потребление ресурсов процессора.
  • Btrfs: Превосходная общая производительность (лучше чем у ext4), надёжна (как только станет стабилной). Множество функций. Тем не менее эта файловая системы находится на стадии разработки, и рассматривается как нестабильная. Не используйте эту файловую систему, если вы не знаете, что вы делаете, и не готовы к возможной потери данных.

Параметры монтирования

Опции монтирования позволяют легко увеличить скорость без переформатирования. Они могут быть установлены при использовании команды mount:

$ mount -o option1,option2 /dev/partition /mnt/partition

Чтобы сделать эти опции постоянными, измените свой /etc/fstab

/dev/partition /mnt/partition partitiontype option1,option2 0 0

Два параметра, которые увеличивают проивзодительность почти всех файлов систем - это noatime, nodiratime. Первый является расширеннием второго, котороый применяется только к каталогам (noatime применяется и к каталогам и к файлам). В редких случаях, например если вы используете mutt, это может стать причиной незначительных проблем. Вы можете использовать вместо параметра relatime.

Ext3

Смотри Ext3 Filesystem Tips.

JFS

Смотри JFS Filesystem.

XFS

Для оптимизации скорости создайте XFS командой:

$ mkfs.xfs -l internal,lazy-count=1 size=128m -d agcount=2 /dev/thetargetpartition

Такой специфичный для XFS параметр монтирования как logbufs=8 может увеличить производительность.

#/etc/fstab
LABEL=XFSHOME /home xfs noatime,logbufs=8 0 1

Reiserfs

Параметр data=writeback увеличивает скорость, но это может привести к повреждению данных при отключении питания. Опция монтирования ((Codeline | notail)) увеличивает пространство, используемое файловой системы примерно на 5%, но и повышает общую скорость. Вы тажке можете уменшить нагрузку на диск, располгая файловая систему и жрунл на разных дисках. Сделать это можно следующим образом:

$ mkreiserfs –j /dev/hda1 /dev/hdb1

Замените /dev/hda1 будет зарезервированы для журнала, а /dev/hdb1 для данных. Вы можете узнать больше о ReiserFS в этой статьие.

BTRFS

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

mkinitcpio.conf для btrfs

Для btrfs в качестве некорневой файловой системы модули и зависимости загружаются, когда это необходимо. При использовании btrfs в качестве корневой файловой системы в загрузочном ramdisk должен быть соответствующий модуль. Модуль btrfs зависит от libcrc32c. Вам нужно добавить crc32c модули в /etc/mkinitcpio.conf, как показано ниже:

MODULES="crc32c libcrc32c zlib_deflate btrfs"

Это позволяет избежать ошибок, таких как "неизвестный символ" при загрузке Btrfs модулей. См. также mkinitcpio-btrfs.

Сжатие /usr

Одним из способов увеличить скорость чтения данных с диска - это сжатие, т.к. уменьшается объём данных для чтения. Однако, данные должны быть распакованы, что увеличит нагрузку на CPU. Некоторые файловые системы поддерживают прозрачное сжатие, такие как Btrfs и reiserfs4, но их сжатия ограничивается 4K размер блока. Поэтому в этом руководстве рассматривается сжатие /usr в squashfs и последующее монтирование через aufs. Это экономит довольно много места, как правило две трети, и приложения запускаются быстрее. Однако установка, обновление или перестановка приложений будут перезаписывать несжатый /usr, поэтому Вам придётся периодически сжимать /usr. Squashfs уже включено в ядро, aufs можно найти в extra репозитории, так что перекомпиляция ядра не требуется. Чтобы всё это заработало, нужно установить всего два пакета:

$ pacman -S aufs2 squashfs-tools

Эта команда установит aufs модули и некоторые утилиты для файловой системы squashfs. Теперь нам понадобятся две директории. Одна для сохранения сжатого /usr в режиме "только для чтения" и вторая - для записи изменений с момента последнего сжатия, т.е. "для записи".

$ mkdir -p /squashed/usr/{ro,rw}