2

Хорошо, я технически знаю, что такое IOPS . Техническое определение великолепно, но я не понимаю более широких последствий. Мои знания в основном:

  • IOPS - это операции ввода и вывода, которые выполняет приложение
  • Существуют HD IOPS, оперативные IOPS, сетевые IOPS и т.д.
  • IOPS может быть последовательным или случайным (в среднем для конкретного приложения)
  • Последовательные IOPS - это хорошо, случайные IOPS - это плохо.

Но это о глубине моего понимания. Поэтому, когда кто-то спрашивает: «Имеется ли у разрабатываемого вами приложения высокий или низкий уровень IOPS?«Я не знаю, что это влечет за собой. Приложение основано на веб-технологиях. Значит ли это, что мне нужно считать IOPS IIS или только IOPS, которые делает мое веб-приложение? Не происходит много операций ввода-вывода на уровне файлов, но существует большой трафик базы данных. Является ли "среднее" основанным на одном сеансе, всех сеансах в течение дня, всех днях в течение недели и т.д. Как я могу определить, высокий или низкий доступ к моей базе данных? Что является высоким, а что низким в этом отношении? Как я могу сказать, они последовательные или случайные?

И как только я все это выясню и пойму, что все это значит, как мне сделать это лучше? Как можно снизить IOPS или изменить его со случайного на последовательный? Или я должен даже волноваться или беспокоиться о таких вещах? Есть ли инструменты для измерения этого материала? Как я могу увидеть, что мои IOPS базы данных, например?

1 ответ1

3

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

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

Вращающиеся жесткие диски могут читать и записывать быстрее, чем в случайном порядке, потому что поиск по различным дорожкам требует времени. Диск с поддержкой NCQ, которым в настоящее время являются все новые накопители, может немного смягчить это, позволив накопителю определить порядок выполнения операций ввода-вывода в определенной степени, но это только немного помогает. Твердотельные накопители могут записывать быстрее последовательно, чем случайным образом, особенно если они поддерживают TRIM и вы записываете в только что удаленный раздел флэш-памяти. Однако, поскольку вы обслуживаете множество уникальных и случайных пользователей, вы должны принять случайный ввод-вывод в худшем случае для вашей ситуации, так как вы не можете контролировать, что будут делать пользователи.

В вашей ситуации вы, скорее всего, будете заботиться о дисковых IOPS больше, чем о сетевых IOPS. Таким образом, вы захотите отслеживать интенсивность доступа к вашей базе данных с течением времени, в течение дня, месяца и нескольких месяцев, собирая информацию, которая имеет значение для вашей системы. Вы должны быть уверены, что на вашем сервере баз данных имеется достаточно оперативной памяти, чтобы он мог кэшировать часто используемые данные и использовать такие понятия SQL, как разбиение на разделы и правильная индексация. Например, вы можете поместить журнал базы данных на отдельный физический диск, чем ваша база данных. Это сложные темы, которые потребуют серьезных исследований с вашей стороны.

Я считаю, что SQL Server Performance Monitor и SQL Profiler, если вы хотите узнать, что именно делает ваше веб-приложение, - это то, что вы должны начать изучать.

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