Я много искал в Интернете и не мог найти точного ответа.
Есть дистрибутивы, такие как Gentoo (или FreeBSD), которые не поставляются с двоичными файлами, а только с исходным кодом для пакетов (портов).
В большинстве дистрибутивов используются бинарные резервные копии (debian и т.
Первый вопрос: насколько я могу ожидать увеличения скорости от скомпилированного пакета? Насколько я могу увеличить скорость при использовании реальных пакетов, таких как apache или mysql? т.е. запросов в секунду?
Второй вопрос: означает ли двоичный пакет, что он не использует никаких инструкций процессора, которые были введены после первого 64-битного процессора AMD? Означает ли это, что с 32-битными пакетами пакет будет работать на 386 и в основном не использует большинство современных инструкций ЦП?
Дополнительная информация:
Краткий ответ ... Многие крупномасштабные приложения, чувствительные к скорости / задержкам, работают в стандартных дистрибутивах Linux. Red Hat, CentOS, Debian, Ubuntu ... Все они хорошо работают в большинстве случаев. Наибольшая выгода достигается за счет настройки приложений, стандартной оптимизации ядра и ОС, а также инфраструктуры.
Gentoo может предложить некоторую оптимизацию, но откроет дверь для большего количества проблем с управлением, меньшего количества размышлений, уменьшения поддержки поставщиков и драйверов, проблем со стабильностью, насмешка и потенциальные проблемы безопасности.
Я управлял серверами на базе Gentoo в условиях частой финансовой торговли. Несмотря на то, что в Gentoo было небольшое улучшение производительности, я все же перешел на Red Hat и CentOS. Преимущества Gentoo на бумаге были легко преодолены за счет более разумного выбора оборудования, лучшей поддержки производителя серверов и интеграции оборудования, более разумного исправления инженерами Red Hat и более эзотерических технологий, таких как обход ядра...
Если вы находитесь в точке, где эффективность популярных стеков приложений (LAMP) является проблемой, убедитесь, что вы оптимизировали оборудование вашего сервера (тип ЦП, расположение ОЗУ), сетевую инфраструктуру, систему мониторинга и сможете определить узкие места системы до иду по этому пути.
Вы достигли ограничения производительности сейчас?
Разница в производительности почти во всех случаях будет минимальной и бесполезной. Веские причины использовать исходные дистрибутивы (при развертывании собственных двоичных пакетов, как позволяет система bindist gentoo) включают:
Если вы не делаете ничего из этого, вам не нужен исходный код. Для личного использования они очень удобны, потому что позволяют постепенно обновлять вещи по желанию, не слишком беспокоясь о двоичной совместимости, что не является проблемой, которую я часто вижу в корпоративных условиях.
Стоит отметить, что вы можете делать это и с двоичным дистрибутивом, создавая свои собственные пакеты RPM или что-то еще. Накладные расходы на управление аналогичны.
Вы практически не увидите увеличения скорости на 15% при компиляции из исходников. Я бы не хотел оценивать его даже в 5% в любом разумном случае. Компиляция из исходников дает вам пару вещей:
Однако компилятор в любом случае действительно очень редко их генерирует, и общая экономия от их использования, как правило, очень мала, если рассматривать производительность приложения в целом. Такие вещи, как доступ к ОЗУ (и задержка), а также задержка диска и устройства, являются гораздо более важными факторами, и вам действительно стоит начать с этого.
Приложения, которые мощь Воспользуйтесь настраиваемой компиляцией, которая будет работать только на относительно недавних процессорах Intel Core i7 или i5, включая те, которые выполняют много векторных вычислений, и те, которые выполняют много шифрования и дешифрования AES или требуют большого количества случайных чисел. Если вы хотите использовать Intel DRBG, вам нужно сделать это в настоящее время.
Если ни один из них не подходит к вам, вы будете вполне довольны любым из имеющихся дистрибутивов на основе Debian или Red Hat, и у вас будет намного меньше накладных расходов на обслуживание.
Конечно, все высказанные замечания верны. Я просто хотел бы затронуть идею о том, что увеличение производительности на 5% -15% недостижимо, особенно с современными версиями GCC, это действительно зависит от архитектуры процессора и того, насколько она близка к базовой линии, используемой в качестве цели. для бинарных дистрибутивов. GCCs -march = native будет, помимо использования расширений ISA, также оптимизировать для размеров кэша / строк L1 и L2. Правильно выровненный код (для вашего процессора) может быть намного быстрее, особенно когда также используется -flto, чтобы компилятор мог знать все, что ему нужно учесть. [к сожалению, некоторые пакеты не работают с LTO]
Кроме того, компиляция выбранных пакетов с -Ofast в дополнение к march = native и LTO может иметь большое значение.
В будущем, если инфраструктура GCC Graphite когда-нибудь стабилизируется, это может принести еще большую прибыль.
Это зависит от того, что вы хотите в своей системе, и на самом деле здесь есть три точки зрения (и это верно как для оборудования, так и для программного обеспечения)
Во-первых, мейнстрим для большинства людей в научной фантастике - вам нужно что-то, что вы знаете воля работа, ты хочешь служба поддержки и ты этого хочешь сейчас. В этом случае переход на системы на основе redhat (RHEL предоставляет вам отличную поддержку, а centos - это перестроенная сообществом хорошо протестированная версия RHEL). Однако вы не получите новейшего и самого лучшего. Во многих случаях это относится и к оборудованию.
Вторая точка зрения - это «середина пути», то есть золотая середина - работа с чем-то вроде ubuntu. Вам нужны новые пакеты (за небольшую плату за абсолютную стабильность), вам нужен установщик и Хорошие вещи.
В некоторых случаях люди действительно сталкиваются с проблемами, но у вас есть более новые пакеты, и что-то разумно проверенный. Хотя здесь очень много ненависти к Ubuntu, это хороший компромисс между простотой установки и достаточно новыми пакетами. Вероятно, Debian - немного более консервативный выбор. В наши дни вы даже можете настроить Ubuntu с ядром с низкой задержкой прямо из коробки. Мне кажется, что ubuntu и debian работают на меня, но ymmv. Многие места, где развернут много серверов, таких как facebook и google, выбирают этот вариант.
Наконец, есть дистрибутивы на основе исходного кода. Первоначальная установка в большинстве случаев вызывает сильную боль в задней части. Вы ошиблись при настройке ядра? Ой, потратьте несколько часов на перекомпиляцию. У вас тоже нет установщика - это для n00bs. Вы часто получаете передовые приложения и возможность компилировать их по мере необходимости (что включает в себя возможность выбирать оптимизацию для скорости или использования памяти, например) и скользящий выпуск. Если у вас очень специфические, эзотерические потребности, gentoo отлично подойдет. Если вам нужно развернуть несколько десятков систем и вы хотите автоматизировать это ... удачи. Распределения на основе исходного кода просто не масштабируются. Вы получаете большую гибкость, * некоторую ** дополнительную скорость, но не ремонтопригодность на том же уровне, что и при распространении IMO на основе пакетов. Вы не вероятно, вы получите на 15% больше скорости, и вы, вероятно, в конечном итоге потратите время, пытаясь настроить флаг компиляции для вашего оборудования, а если вы что-то напутаете, потратите время на выяснение того, что именно не смогли.
BSD - это отдельный семья операционных систем. Некоторые люди их поддерживают (по крайней мере, один из постоянных пользователей коммуникационной комнаты является пользователем freebsd), и разные BSD имеют разные цели - например, openbsd одержим безопасностью, а freebsd является «основным». В некоторых случаях они могут не иметь такой же аппаратной поддержки, как Linux, но это зависит от многих факторов.