15

Оптимизация Linux-based дистрибутива

Привет всем, первоначально, я хотел вести именно подобный блог, а не делать обзоры на диструбивы, что как оказалось вызывает больше срачей, чем толку. Если кто-то спросит, зачем нужен этот пост, то я могу смело ответить, чем это хуже, чем все посты о "оптимизации" windows, путем отключения сервисов и очистки реестра.
И так, начнем.
Первым делом, Linux, как и Windows можно оптимизировать путем отключения не нужных сервисовдрайверов и тд. тп.
Сделать это можно так команда вашего демона автозапуска (systemctl для systemd и rc-update для openrc) команда для удаления из автозапуска и отключения данного сервиса имя сервиса
К примеру > rc-update rm sshd && service sshd stop
Идем дальше.
Такой же процесс можно провести и с ядром.
Не нужные вам модульные драйвера можно поместить в /etc/modprobe.d/blacklist-циферка
и отключить во время работы системы через команду rmmode имя драйвера
Так же, очень полезно будет пересобрать ядро, убрав из него все не нужные вам драйвера, выбрать более подходящую микроархитектуру и собрать его с определенными флагами для оптимизации.
Самыми оптимальными флагами для оптимизации ядра я считаю:
> CFLAGS= -march=native -mtune=native -O3 -ffast-math -flto -funroll-loops -mfpmath=sse
Аналогично для СXXFLAGS.
Так же, советую использовать последнюю версию компилятора, к примеру для GCC самой новой версией является 4.9.2.
Теперь объясню, что каждый из этих флагов делает.
> march mtune
Флаги, предназначенные, для использования заранее заготовленного набора флагов.
Узнать содержимое этого профиля можно с помощью команды > gcc -c -Q -march=native --help=target
Не всегда заготовленный для вашего процессора профиль является самым лучшим, к примеру в профиле Core2 не включено использование sse1-3, mmx и ssse3, которые значительно повышают производительность.
Включить их можно с помощью -mтип_оптимизации версия оптимизации
Например > -mmmx -msse2 -msse -msse3 -mssse3 -mavx -msse -msse4.1 -msse4.2
Так же можно поиграться с -masm, но далеко не для всех процессоров изменение стандартного assambler-a повышает производительность.
> -O3
Этот флаг включает набор флагов Optimization level 3, который является не совсем стабильным, но адекватно работает в большей части приложений, проблемы возникали только с grub2.
Внутри него целая куча флагов, которые описаны на официальной вики gcc.
> -ffast-math
Флаг из -Ofast (ака -O4), единственный флаг из крайне не стабильного Ofast, который не вызывает сегментационную ошибку, позволяет ускорить все математические операции в разы.
> -flto
Межмодульная оптимизация, позволяет оптимизировать скорость работы программы на определенных моментах кода.
> -funroll-loops
Развертывание циклов, которое позволяет оптимизировать скорость выполнения определенных циклов, если хотите разворачивать все циклы используйте > -funroll-all-loops
> -mfpmath=sse
Устанавливает основным профилем, для математических операций, набор команд sse, вместо стандартного набора команд.
Значительно ускоряет все математические операции.

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

В следующий раз расскажу о ускорении загрузки системы.
Вы смотрите срез комментариев. Показать все
Автор поста оценил этот комментарий
Если не ошибаюсь, то -msse4.1 включает в себя предыдущие "sse" и mmx и достаточно его включить. Хотя 100% утверждать не буду. Ты прям заинтересовал _) буду сейчас смотреть, тоже может для своего core2 пару флагов выставлю, а то давно руки чешутся .
раскрыть ветку (15)
Автор поста оценил этот комментарий
с включенным sse 4.2 он становится enabled, но предыдущие остаются disabled.
раскрыть ветку (14)
0
Автор поста оценил этот комментарий
И еще, как количество попугаев можно проверить, чтоб не на глаз ? А то нарыл тут всяких флагов и интересно проверить, но хотелось бы какие-то конкретные цифры знать на выхлопе .
раскрыть ветку (13)
0
Автор поста оценил этот комментарий
geekbench говорят, что не плохой, но мне он не нравится, так как он сам по себе оценивает производительность себя самой, хотя она не опен соурсная, таким образом она на выхлопе выдаст от силы +5 - +50 баллов.
раскрыть ветку (12)
0
Автор поста оценил этот комментарий
Поискал тут немного про флаги и остановился на "--march=core2 -O3 -ffast-math -fno-align-functions -fno-align-labels mfpmath=sse -mssse3 --param l2-cache-size=4096 -pipe -Wno-all". Со стандартными флагами хромиум выдает 2800+ попугаев, с новыми(без фаст-мат) 3100+ на http://peacekeeper.futuremark.com/ и наконец то идет абсолютно все видео 1080 идеально(раньше некоторые ролики плохо воспроизводились из-за того что процессор не справлялся). 10%, не думал, что будет так приятно.
Еще потестил 2 патча BFS, BFQ . Не сказал бы что скорость взлетела до небес, но после стандартных, с этими планировщиками тормозов при нагрузках было меньше + загрузки быстрее.
И напоследок я открыл tmpfs :D :
Wed Dec 24 19:18:38 2014 >>> app-emulation/wine-1.6.2
merge time: 1 hour, 10 minutes and 35 seconds.

Fri Dec 26 02:14:01 2014 >>> app-emulation/wine-1.6.2
merge time: 39 minutes and 29 seconds.

Первый результат - обычная сборка рут фс ext4, второй соответственно tmpfs. ~30% - разница очевидна.

ЗЫ разобраться бы со squashfs еще, говорят тоже очень вкусно.
раскрыть ветку (11)
0
Автор поста оценил этот комментарий
Советую еще добавить -fomit-frame-pointer и -funroll-loops, во первых стартовать будет шустрее, во вторых работать будет немного шустрее, возможно еще 1% выиграете.
0
Автор поста оценил этот комментарий
tmpfs с большими файлами плохо работает, только с небольшими.
раскрыть ветку (9)
0
Автор поста оценил этот комментарий
Хмм, не замечал. Да и такого не должно быть т к по факту монтируется оперативка под видом hdd/sdd, а она полюбому должна быть быстрее чем hdd. Если и может возникнуть проблема, то только из-за того что не хватит оперативной памяти для сборки какого-нибудь пакета(chromium и open office первые кандидаты т к первый для сборки требует 2 гига а второй около 10). Хотя учитывая что современные машины используют 8-16 гб ОЗУ никакие большие пакеты не страшны.
раскрыть ветку (7)
0
Автор поста оценил этот комментарий
ну файлы размером от 2ГБ в tmpfs будут работать в несколько раз медленее.
раскрыть ветку (6)
0
Автор поста оценил этот комментарий
Ну у меня она монтируется как /var/tmp/portage, так что там происходит только компиляция. И даже в случае с бобльшими файлами тут будет чувствоваться прирост т к во время сборки жесткий диск вообще не трогается. Весь процесс происходит в tmpfs а потом это все просто записывается на хдд.
Сейчас вот заговорили и пока смотрел подтверждение своим словам, высмотрел, что можно попробовать убрать pipe из флагов и это еще ускорит время сборки в tmpfs . Попробую еще разок вайн без пайпа пересобрать. Гляну результат.
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Sat Dec 27 19:13:14 2014 >>> app-emulation/wine-1.6.2
merge time: 34 minutes and 53 seconds.
Без pipe. Ну все_) осталось разобраться со squashfs и убрать остатки ненужного из ядра.
0
Автор поста оценил этот комментарий
Привет. Я вот все занимаюсь красноглазием и нашел такую штуку как icc. Ты не пробовал ? Мб где-то читал об этом ?
раскрыть ветку (3)
0
Автор поста оценил этот комментарий
Каждый красноглазик находит icc, потом компилирует с помощью него систему, радуется производительности +20%, но со временем понимает, что половина программ не компилируется с помощью него, а другая половина ловит баги изза того, что некоторые функции работают в icc не так, как в gcc. Счастье то какое.
раскрыть ветку (2)
0
Автор поста оценил этот комментарий
Хыыы:D Ну я все им собирать не хотел. Там есть небольшой список который может пересобраться автоматом если все настроить, а если точнее, то некоторые кодеки да *zip всякие. А основная часть все равно на gcc осталась бы.
В крайности лезть точно не стоит, а то все может получиться как ты и описал :D
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

привет! у тебя есть скайп или что-нибудь подобное?

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества