Когда пора добавить больше ядер к вашему виртуальному серверу? [закрыто]

У меня есть сервер Linux (RHEL 5.8) с Java 7 и Tomcat 7.

Производительность оставляет желать лучшего, и я почти уверен, что это БД. запросы, которые выполняются медленно.

У нас сейчас 2 ядра, и средняя загрузка никогда не превышает 1,5, использование второго ядра часто составляет 0%. Они хотят попробовать добавить ядро, чтобы посмотреть, поможет ли это. Думаю, не будет. Обычно я добавляю еще один только в том случае, если вижу, что все ядра по крайней мере на какое-то время загружены до максимума.

Что вы думаете по этому поводу? Когда вы говорите, что пора добавить больше ядер?

Подробнее База данных находится на другом компьютере, управляемом администратором баз данных. Я системный администратор Linux.
ЦП: 2 ядра Intel (R) Xeon (R) CPU X5675 @ 3,07 ГГц 16 ГБ ОЗУ с 2 ГБ подкачки 8 ГБ выделено в куче, использование для кучи обычно меньше 4 ГБ, пики составляют около 6 ГБ пики использования ЦП около 120%

4
задан 18 April 2014 в 21:57
6 ответов

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

Каковы характеристики базового оборудования системы? Например, модель процессора, тактовая частота, объем оперативной памяти.

Низкая производительность по сравнению с другим показателем? Твои ожидания? Всегда ли производительность была плохой?

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

7
ответ дан 3 December 2019 в 02:44

Производительность низкая, и я почти уверен, что запросы к БД работают медленно.

Если вы уверены, что проблема в этом, то оптимизировали ли вы установку MySQL или MSSQL? Простая установка программного обеспечения без настройки производительности не будет решена путем простого увеличения ресурсов.

Я рекомендую использовать MySQL Tuning Primer Script, расположенный здесь . Очень прост в использовании, и рекомендации довольно точны.

В зависимости от вашей настройки вам может потребоваться научиться настраивать производительность вручную - это означает, что вы научитесь интерпретировать выходные данные MySQL самостоятельно и действовать в соответствии с ними, - но этот сценарий работает довольно хорошо для 95% установок, на которых я когда-либо их использовал. Остальные 5% - это идиосинкразические настройки базы данных, требующие особого внимания. Я настоятельно рекомендую такие руководства, как , этот в блоге о производительности MySQL .

2
ответ дан 3 December 2019 в 02:44

Перед добавлением дополнительных ядер было бы неплохо посмотреть, какие ресурсы фактически используются - например, если система привязана к вводу-выводу, добавление дополнительных ядер тратит деньги, но обновление дисков или оперативной памяти, вероятно, решит проблему. Попробуйте запустить vmstat (например, «vmstat 2») и проконтролировать io, память и ЦП, чтобы получить представление о том, что происходит.

0
ответ дан 3 December 2019 в 02:44

Наиболее вероятны ограничения ввода-вывода.

SSD?

0
ответ дан 3 December 2019 в 02:44

Поскольку вы находитесь в виртуализированной среде, добавление / удаление ЦП и памяти настолько простое, что практически невозможно. Так что просто сделай это. Затем, когда повышения производительности нет, вы указываете на отчеты о профилировании приложений и говорите: «Я же вам сказал».

0
ответ дан 3 December 2019 в 02:44

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

ЦП может быть узким местом производительности, никогда не превышая 10% использования. Обычно это происходит, когда ваш процессор просто медленный (1 ГГц против 2,5 ГГц), и вы хотите обновить базовое оборудование хоста. (Мой планшет 1,5 ГГц очень медленный, хотя загрузка ЦП никогда не превышает 10%. Это просто медленный ЦП!)

По-прежнему существует множество приложений, которые не являются многопоточными, поэтому не важно, сколько Вы бросаете им CPU (ядра), они никогда не будут использовать больше одного. Обычно в этом случае вы я захочу изучить вопрос об обновлении вашего приложения, чтобы использовать преимущества нескольких процессоров, прежде чем добавлять новые к виртуальной машине. Кроме того, некоторые операционные системы также имеют ограничения (обычно основанные на лицензировании); например, Windows Server 2003 Standard поддерживает только 4 физических процессора, но не заботится о количестве ядер на процессор. Это может повлиять на то, добавляете ли вы виртуальные ЦП или количество ядер на виртуальный ЦП в ВМ.

Предполагая, что использование ресурсов моего хоста минимально, я бы добавил ядра в ВМ, когда мои показатели производительности показывают, что среднее (среднее) использование ЦП больше более 50% в обычное рабочее время. Это произвольное число, и в зависимости от ваших приложений и шаблонов использования вам может потребоваться больше ядер при средней загрузке процессора 25% или 75%, хотя к тому времени, когда ваше среднее значение достигнет 75%, вероятно, уже давно пора вносить какие-либо изменения. Вы' Я хочу обратить внимание на постоянное использование и пики использования. Если ваш ЦП обычно находится на 5%, но поднимается до 100% каждые несколько минут, вы не хотите добавлять ядра, пока не определите причину скачков. К вашему сведению, vSphere имеет встроенные эти показатели производительности.
РЕДАКЦИОННОЕ ПРИМЕЧАНИЕ: Это, вероятно, наиболее подходит для приложения, которое имеет довольно постоянную нагрузку, например веб-сервера. Приложения с постоянной загрузкой, такие как сервер разработки, который компилирует код в течение 20 минут каждые 4 часа, будут совсем другими. В этом случае вы должны посмотреть на производительность приложения (компилятора) и пиковую загрузку ЦП при запуске этого приложения (компиляции). 100% ЦП во время всей операции компиляции, вероятно, выиграет от увеличения ЦП, если компилятор является многопоточным. Но потом, вы должны беспокоиться о том, что ваши разработчики рассердятся на вас за сокращение их игрового времени вдвое.

Некоторые приложения, такие как MS SQL Server и MS Exchange, намеренно потребляют ваши ресурсы (память - это больше всего заметный), и это сделано намеренно, поэтому вам нужно знать, что должны делать ваши приложения. Вам необходимо взвесить фактическую производительность приложения и его использование ресурсов - если SQL-сервер использует 100% ЦП и быстро отвечает, это отличается от SQL-сервера, использующего 100% ЦП и медленно отвечающего.

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

Также имейте в виду, что хороший гипервизор, такой как VMWare ESXi, допускает избыточное выделение ресурсов. Это означает, что вы можете выделить 4 виртуальных машины с 4 ядрами в каждой (всего 16 ядер), даже если у вашего хоста всего 8 ядер. Гипервизор динамически выделяет ресурсы хоста той виртуальной машине, которая в них больше всего нуждается, поэтому с 3 простаивающими виртуальными машинами ваша 4-я виртуальная машина может использовать столько ресурсов вашего хоста, сколько вы можете выделить для нее. Уловка, на которую следует обратить внимание, - это лицензирование, поскольку некоторые приложения лицензируются на ядро ​​ или на процессор , а не на компьютер или установку ОС.

Гипервизор динамически выделяет ресурсы хоста той виртуальной машине, которая в них больше всего нуждается, поэтому с 3 простаивающими виртуальными машинами ваша 4-я виртуальная машина может использовать столько ресурсов вашего хоста, сколько вы можете выделить для нее. Уловка, на которую следует обратить внимание, - это лицензирование, поскольку некоторые приложения лицензируются на ядро ​​ или на процессор , а не на компьютер или установку ОС.

Гипервизор динамически выделяет ресурсы хоста той виртуальной машине, которая в них больше всего нуждается, поэтому с 3 простаивающими виртуальными машинами ваша 4-я виртуальная машина может использовать столько ресурсов вашего хоста, сколько вы можете выделить для нее. Уловка, на которую следует обратить внимание, - это лицензирование, поскольку некоторые приложения лицензируются на ядро ​​ или на процессор , а не на компьютер или установку ОС.

0
ответ дан 3 December 2019 в 02:44

Теги

Похожие вопросы