Назад | Перейти на главную страницу

Почему на моем экземпляре EC2 c1.medium максимальная загрузка SQL составляет 50%?

Я новичок в AWS, поэтому думаю, что это может быть очень простой вопрос:

Я использую экземпляр EC2 t1.micro в качестве сервера базы данных SQL для небольшого анализа, который я выполняю (Windows, SQL Express 2008). Все шло гладко, пока недавно у меня не появился огромный SQL-запрос, который максимально загружал плохой процессор на микро-экземпляре и занимал слишком много времени для выполнения. Увидев, что узким местом был ЦП, я обновляюсь до экземпляра «High CPU» (c1.medium), который имеет 5 вычислительных блоков EC2 (2 ядра x 2,5 вычислительных блока каждое). Я снова запустил тест запроса, он работал намного быстрее, и я с радостью запустил полный запрос, интенсивно использующий процессор.

Когда я проверяю монитор ресурсов, чтобы увидеть, как работает мое новое оборудование, я вижу, что процесс sqlservr.exe использует ровно 50% ЦП, а служба MSSQLSERVER аналогично использует ровно 50%. На микро-экземпляре он использовал 100%. Я немного упрощаю ситуацию, предполагая, что узким местом всегда является ЦП, но похоже, что SQL должен подталкивать ЦП на 100%, чтобы быстрее обрабатывать запрос (и ровно 50% кажется подозрительным).

У меня такой вопрос: почему CPU только на 50%? Это как-то связано с 2 ядрами? Нужно ли мне что-то делать, чтобы SQL полностью использовал вычислительные мощности, за которые я плачу? Или SQL использует всю возможную вычислительную мощность, а я неверно интерпретирую то, что вижу в мониторе ресурсов?

Да, 50% означает, что используется только одно ядро.

(РЕДАКТИРОВАТЬ: заменен ответ о сродстве ЦП на ответ о том, что SQL Express ограничен одним ЦП.)

Это связано с тем, что MSSQL рассматривает каждый виртуальный ЦП как ЦП, а не как ядро, а MSSQL Server Express ограничен для использования только на одном ЦП. Таким образом, чтобы позволить SQL использовать всю вычислительную мощность, за которую вы платите, потребуется использовать другую версию MSSQL или вообще другую реализацию SQL (например, MySQL или тому подобное).