Какой виртуальный сервер обладает более мощным процессором?

Как можно сравнить производительность двух виртуальных серверов с разными процессорами: первый сервер имеет одно виртуальное ядро Intel Core i9-12900K, а второй - процессор с названием "Common KVM processor"? Можно ли воспользоваться показателями Bogomips для сравнения? Как оценить результаты теста sysbench --test=cpu --cpu-max-prime=20000, проведенные на обоих серверах?
  • 14 апреля 2024 г. 15:09
Ответы на вопрос 2
В данном случае, процессор Intel Core i9-12900K будет обладать более мощными характеристиками по сравнению с "Common KVM processor", так как он является более современным и производительным процессором.

Для сравнения производительности двух виртуальных серверов можно воспользоваться несколькими методами, включая показатели Bogomips и результаты теста sysbench.

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

Тест sysbench --test=cpu --cpu-max-prime=20000 можно использовать для более точного сравнения производительности двух серверов. Результаты теста покажут, сколько времени каждый сервер занимает на выполнение заданной задачи, а это можно использовать для сравнения и определения более производительного сервера в данном случае.
Во первых, виртуальные серверы не подходят для числодробилок (исключение - использование GPU или других сопроцессоров типа FPGA, там обычно они делятся по честному), потому что физический сервер будет разделен между несколькими пользователями, и даже если ты наберешь тарифным планом максимальное количество процессоров/ядер, часть ресурсов (для серверных - 3-5%, а для десктопных железок до 10-30% в очень специфических случаях) будут тратиться на обслуживание виртуализации. <br/> <br/> Правильное (а это возможно только при монопольном доступе) использование кеша процессора, если повезет, может поднять на порядок скорость вычислений. Например ты оптимизировал свой код под конкретный процессор и конкретный размер кеша (или просто повезло и с твоими данными они удачно в кеш помещаются), запускаешь его у провайдера, и он даже будет работать как ожидается быстро (особенно это будет красиво, когда тебе провайдер даст доступ тесты погонять), но потом, в случайный момент времени, когда рядом с тобой на физическом железе появится другой клиент провайдера, скорость работы у тебя упадет кратно... и ты этим не сможешь управлять. <br/> <br/> Во вторых, провайдеры виртуализации очень любят оверселинг (продажу ресурсов больше чем у них реально имеется, в надежде что большинство клиентов на постоянной основе не будут их полностью использовать, что часто бывает), что так же негативно сказывается на итоговую производительность, в случайный момент времени, когда у большинства клиентов провайдера, поднимется нагрузка, скорость у всех резко и значительно падает. <br/> <br/> Поэтому правильный ответ - процессор мощнее на физическом железе (bare metall) без виртуализации. При необходимости, для своих нужд, ты сможешь на нем запустить систему виртуализации (или лучше паравиртуализации). <br/> <br/> p.s. тебе верно советуют, не смотреть на гигагерцы. <br/> Все очень зависит от того как и какая задача запускается. Оптимизация кода, выбор архитиктуры (например 32-битная на 64-битной будет работать по другому, где то хуже где то лучше), глобальные параметры (размеры буферов пакетной обработки, количество запущенных воркеров/потоков, настройки кеширования и тюнинг файловой системы ос или выбор конфигурации хранилища,..). Это вопрос исследования, и только эксперименты могут дать какой то адекватный ответ. Еще раз - тестируй на реальном железе.
Похожие вопросы