Учитывая падение цен на старое списанное серверное оборудование, я подумываю о его приобретении для домашнего исследования. Я буду работать под управлением Linux, PostgreSQL, Neo4j и R-Server. Я рассматриваю это главным образом как свой сервер базы данных, но время от времени я могу делать некоторые тяжелые вычисления на нем. Наиболее важным моментом является то, что я хочу, чтобы он был доступен без перерывов, и позволил мне получить доступ к данным удаленно, чтобы мои операции работали в одночасье и чтобы мои данные были в безопасности.

Я посмотрел на доступное оборудование, и кажется, что 5-го поколения Proliant, 3-го поколения. PowerEdge или его аналог можно приобрести за 150-400 $, в зависимости от конфигурации. Это должно дать мне RAID-хранилище + от 16 до 32 ГБ ОЗУ + 8 реальных ядер, работающих где-то между 2,5 и 3 ГГц: мне кажется, этого достаточно.

Проблема в том, что мне трудно сравнивать производительность этих старых зверей с более современными компьютерами. Большинство тестов для конечного потребителя фокусируются на графике, играх и т.д., Которые не имеют отношения к безголовому серверу. Учитывая мои варианты использования (которые я цитировал выше), на какие параметры мне следует обратить внимание? Суть в том, что я не хочу, чтобы этот сервер работал хуже моего текущего настольного компьютера (Quad Core i7 2,5 ГГц + 12 ГБ ОЗУ) в тех областях, для которых он используется.

PS Вот откуда идея пришла: http://xrds.acm.org/blog/2014/09/my-300-home-cloud-server-a-story-of-blood-sweat-and-ebay/

1 ответ1

1

Производительность во многом зависит от типа рабочей нагрузки, которую вы хотите выполнить. Даже для сервера базы данных это очень сильно зависит от того, какой запрос вы делаете. К сожалению, Quad Core i7 не так много значит, так как под маркой i7 есть несколько разных поколений чипов.

В общем, я нашел результаты тестов phoronix-test-suite информативными при получении оценки / ожидания для парка оборудования.

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

RAID поможет вам увеличить пропускную способность хранилища, но даже в этом случае вы в несколько раз увеличите производительность по сравнению с одним диском, это может иметь решающее значение, но вряд ли будет революционным. Вот почему люди переходили на твердотельные накопители или диски RAM.

У меня был db-сервер, который по сути работал с RAM-диском, мне просто нужен хороший ИБП, и я делал регулярные (каждую минуту, инкрементные) резервные копии диска. Это работало хорошо, потому что у меня было достаточно оперативной памяти, чтобы сохранить всю базу данных. Даже не вдаваясь в радикальные меры по созданию RAM-диска, кэширование ОС даст вам большую часть прироста производительности, если у вас будет достаточно RAM.

Средние настольные вычисления не требуют большой пропускной способности памяти, но для занятой базы данных и некоторого серьезного сокращения чисел я обнаружил, что следующее узкое место в производительности связано с памятью. Процессоры настолько быстры, что они просто сидят и ждут ОЗУ много раз. Идея заключается в том, что вам нужно больше микросхем, больше ядер и более высокая тактовая частота процессора. Двухъядерный процессор с двумя процессорами почти всегда будет превосходить четырехъядерный процессор одного поколения с одинаковыми тактовыми частотами, поскольку каждый процессор будет иметь свой собственный банк оперативной памяти.

С точки зрения использования процессора, вы ожидаете повышения тактовой производительности до 5-10% между поколениями. Итак, сложите физические ядра, умножьте на такт, а затем настройте его генерацию, и вы получите ожидаемые результаты производительности пакета.

Если вы намереваетесь перекомпилировать программное обеспечение, специфичное для данного оборудования, и программное обеспечение / компилятор может использовать дополнительные функции в более новом процессоре, то это может быть другой проблемой. При некоторой (математической) рабочей нагрузке, которую я выполняю, моя двойная коробка Xeon E5-2670 v2 в три раза превышает тактовую производительность по сравнению с коробкой i7-920, да, это в целом в 14 с лишним раз быстрее!

Возможно, лучше всего сначала провести быстрый опрос / оценку потребностей вашего приложения. Проверьте пропускную способность диска, загрузку процессора, прерывание процессора, использование оперативной памяти / обналичивание / обмен. Тогда вам будет что искать при выборе новой системы. (В случае, если вы не знали, нагрузка на процессор всегда будет высокой, даже если он ожидает ОЗУ или диск. Быстрый, но не полностью точный чит - это запуск в фоновом режиме чего-то полностью загруженного процессора, такого как SETI @ home и т.д., С самым низким приоритетом. Затем вы можете разделить приятную нагрузку с обычной нагрузкой, независимо от того, будет ли принята хорошая нагрузка, это ваша обычная нагрузка, ожидающая чего-то.)

В общем, ищите систему с большим количеством разъемов и разъемов, будь то разъемы для процессоров, разъемы DIMM или каналы SATA и т.д. И т.д. Параллельное выполнение операций действительно ускоряет процесс при правильной настройке.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .