DeepEdit!

Программирование баз данных на Oracle, техническая документация, литература, статьи и публикации

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

9. Теория массового обслуживания для специалиста по Oracle

Теория массового обслуживания для специалиста по Oracle


Специалисты могут бесконечно спорить о том, как наилучшим образом повысить производительность системы, пока не будет найден способ доказать чью-либо правоту. Один из путей проверки высказываемых гипотез о повышении производительности - это метод проб и ошибок. Проблема оптимизации производительности этим методом заключает­ся в том, что в среднем он оказывается весьма затратным. Для опробо­вания каждого сценария необходимо столько времени и денег, что час­то компания может позволить себе проверить только некоторые из них. Зачастую время и деньги заканчиваются прежде, чем удается найти подходящее решение.
На эффективность метода проб и ошибок можно надеяться только в том случае, если при выборе очередной попытки руководствоваться ка­ким-то разумом. Обычно в ход идет сочетание имеющегося опыта, ин­туиции и везения. Однако именно опыт, интуиция и удача являются движущей силой таких вот нескончаемых споров:
Аналитик: На компьютере предыдущего клиента мы заменили процессор на более мощный, и на следующий день все заработало на 50% быстрее. На­до и сейчас срочно установить более мощный процессор, дабы в корне пре­сечь все проблемы производительности.
Другой аналитик: Я считаю, что это пустая трата времени и денег. В по­следних семи известных мне случаях замены процессора деньги ушли в пе­сок, т. к. никакого реального улучшения не наступило. А недавно установ­ка более мощного процессора даже привела к замедлению работы некото­рых приложений.
Кто из них прав? Вполне вероятно, что в каждом из случаев дело об­стояло именно так, как это описывают собеседники. Чей опыт окажет­ся более полезным для решения вашей следующей задачи? Вместо ответа я приведу утрированно комичный гипотетический диалог двух исполненных благих намерений, но некомпетентных аналитиков, ко­торые пытаются определить, достаточно ли велик имеющийся у них стакан для того, чтобы вместить всю воду из кувшина.
Аналитик: Вчера мы вылили воду из кувшина в стакан, и, уверяю вас, все содержимое кувшина отлично туда поместилось. Считаю, что следует вы­лить воду в стакан.
Другой аналитик: Ничего у вас не получится. Последние семь раз, когда я видел, как люди выливают воду из кувшина в стакан, оказывалось, что вся вода не может туда поместиться. Совсем недавно один мой клиент вылил воду из кувшина в стакан, и результат был ужасен - вода залила все вокруг!
Вывод может быть только один - надо перестать угадывать. Измерьте, сколько воды в кувшине. Измерьте объем стакана. Если количество воды превышает объем стакана, не надо ничего никуда переливать. В противном случае - смело действуйте.
Если можно измерить количество воды в кувшине и объем стакана, то не придется проводить эксперимент для того, чтобы убедиться в его ре­зультате. Это самый простой пример математической модели. Преиму­щество модели заключается в возможности предсказания будущего без предварительной проверки на практике. Конечно, эту модель мож­но усложнить, введя в нее такие факторы, как вероятность пролива­ния воды в зависимости от формы носика кувшина, сноровки перели­вающего и т. д. Разумнее всего выбрать самую простую из моделей, позволяющих получить результат, соответствующий вашим требовани­ям точности.

Возможно, аналогия будет более точной, если в этом примере за­менить воду лунными камнями. Как и рабочая нагрузка прило­жения, лунный камень имеет нестандартную форму, которую сложно смоделировать, и их получение для проведения экспе­риментов является невероятно затратным.

 









jAntivirus