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