Книга: Настольная книга 1С:Эксперта по технологическим вопросам
Назад: 2.2.Как измерять, как получать цифры
Дальше: 2.4.Бизнес-процесс решения проблем по ключевым операциям

2.3.Как устроена система

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

Эти команды и связанные с ними данные должны пройти приблизительно следующий маршрут, сначала в прямом направлении, а затем в обратном:

- код на языке «1С», выполняющийся на клиенте,

- платформа «1С:Предприятие» (клиентское приложение),

- ОС,

- оборудование.

- код на языке «1С», выполняющийся на сервере,

- платформа «1С:Предприятие» (серверные процессы),

- ОС и софт виртуальной машины (если есть),

- ОС физической машины,

- оборудование,

- сами запросы,

- СУБД,

- ОС и софт виртуальной машины (если есть),

- ОС физической машины,

- оборудование.

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

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

Туда:

- найти ключи,

- лифт,

- дойти до автомобиля,

- автомобиль (дорога туда),

- найти тележку,

- траволатор,

- стеллажи,

- касса.

Обратно:

- траволатор,

- погрузить сумки в автомобиль,

- автомобиль (дорога обратно),

- донести сумки до лифта, возможно, за несколько заходов,

- лифт,

- отпереть дверь, зайти домой.

Такая схема годится, потому что и организация движения, и организация розничной торговли, и система на платформе «1С:Предприятие» по своей сущности являются системами массового обслуживания. Для простоты будем считать, что все автомобили, которые едут по дороге, едут либо в этот магазин, либо из него, и таким образом снимем необходимость других допущений.

Рассмотрение систем на платформе «1С:Предприятие» с помощью аппарата теории массового обслуживания еще ждет своего исследователя. Одним из практических аспектов такого исследования могла бы стать замена нагрузочных тестов для некоторых целей имитационным моделированием (нагрузочный тест хотя и проводится с помощью средств вычислительной техники, представляет собой все-таки натурный эксперимент, хотя и с заменой живых пользователей «роботами»).

Как отмечалось ранее, на каждом из уровней системы существуют определенные накладные расходы на выполнение команд (действий, требований). Совокупность этих расходов определяет суммарное время выполнения операции. Расходы, происходящие на каждом из уровней, определяются:

  1. Собственно свойствами уровня (более скоростной автомобиль может доехать до магазина быстрее).
  2. Свойствами выполняемых действий (от количества товаров в тележке зависит время обслуживания на кассе).
  3. Потерями времени на ожидание (очередь в кассу и пробка на дороге сводят на нет весь выигрыш времени, полученный от использования скоростного автомобиля и небольшого количества покупок).

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

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

Существует характерная особенность систем, в которых есть проблемы параллельности. Она заключается в том, что в условиях установившегося входного потока пропускная способность системы определяется пропускной способностью ее самого медленного уровня. Такой уровень называется «узким местом» или «бутылочным горлышком» (bottle neck). В рассматриваемом классе систем (у всех действий единая точка входа, например, все автомобили, которые едут по дороге, едут либо в этот магазин, либо из него) это «бутылочное горлышко» всегда одно. Так же, как на дороге, на уровнях, находящихся после этого «бутылочного горлышка», всегда будет иметь место характерный спад загрузки: если покупатели толпятся в овощном отделе, на кассах будет свободно; если в системе выстроилась очередь из блокировок, оборудование сервера СУБД будет простаивать.

Назад: 2.2.Как измерять, как получать цифры
Дальше: 2.4.Бизнес-процесс решения проблем по ключевым операциям