Всех, наверное, волнует вопрос - не рухнет ли магазин, когда в него придут покупатели? Особенно - если хостинг куплен обычновенный. Особенно, если нет практического опыта работы.
Может ли производитель гарантировать, что когда ко мне придут люди, их программный продукт обсужит покупателей, и всё будет чики-пики?
Этот вопрос сложный, поскольку в значительной степени устойчивая работа магазина зависит от мощности сервера, на котором он расположен. Главная нагрузка приходится на процессор - памяти, дискового пространства, пропускной способности канала может быть завались, но при слабом процессоре база (в частности - мускул) очень быстро сожрёт все ресурсы процессора, и время ожидания открытия страниц магазина покупателями начнёт исчисляться минутами.
Понятно, что в рамках одного и того же сервера разные скрипты работают по-разному, и по-разному грузят сервер. Поэтому нужно все интересующие магазины установить на один и тот же сервер, и протестировать в одних и тех же условиях. Но это - длительный, сложный и утомительный процесс, которым целесообразно озадачиться на этапе выбора программного обеспечения для магазина.
Сейчас же я про другое - как понять, каковы пределы моего конкретного магазина?
Для анализа того, как магазин справляется с нагрузкой, можно использовать встроенные возможности базы MySQL. А возможностей таких множество, хотя в повседневной жизни о них часто забывают.
Итак, определяем, какие запросы к базе данных выполняются очень долго, то есть реально грузят сервер.
Для этого создаём логи, в которые будут записываться уличённые в медленной работе запросы к базе данных.
В MySQL устанавливаем директивы:
log_slow_queries = slowsql.txt
long_query_time = 1
1 здесь - 1 секунда, можно поставить 2, 3, или сколько вам нужно. Обычно эта величина регулируется в зависимости от мощности сервера.
Внимание: здесь должно быть указано целое число.
Все запросы, выполняющиеся дольше указанного времени, будут записаны в лог-файл slowsql.txt
После того, как будут выявлены долго выполняющиеся запросы, можно попытаться их видоизменить, чтобы ускорить их работу, что в свою очередь приведёт к ускорению работы всей системы.
Естественно, если у вас не много посетителей, а магазин работает достаточно шустро, то очень не скоро в логе начнут появляться записи.
Поэтому имитируем поток покупателей.
Делаем это утилитой фирмы Microsoft, которая называется "Stress Tool", взять её можно по этой ссылке на сайте "Microsoft".
Устанавливаем в программе нужное количество посетителей, указывая соответствующий "Stress level", например "300" будет означать 300 обращений к странице вашего магазина в минуту.
Опять же, в зависимости от мощности сервера, устанавливаем эту величину на более высокий или более низкий уровень. Постепенно увеличивая её, находим то количество посетителей, при котором работать в вашем магазине становится утомительно.
Если над скриптами вашего магазина колдуют программисты, то можно обратить их внимание на те запросы, которые потенциально приводят к замедлению и зависанию системы. Они смогут их видоизменить для ускорения работы, или ввести какое-то кэширование, или улучшить производительность как-то ещё.
В любом случае, вы сможете понять, каков запас производительности вашего магазина на этом конкретном сервере. Если сервер "ложится" при количестве посетителей, в разы превышающем ваш нынешний уровень, то сможете спокойно спать в течение какого-то билее или менее длительного времени (в зависимости от ваших маркетирговых усилий). Если же запаса прочности мало, стоит подумать о переходе на другой тариф, покупке выделенного сервера или апгрейде железа.
Благодарю за помощь в подготовке статьи john_j с форума нулледа.


























