Проблема обработки запросов в CGI-режиме

Материал из 1GbWiki.

(Различия между версиями)
Перейти к: навигация, поиск
Версия 17:54, 31 мая 2010 (править)
77.239.235.129 (Обсуждение)

← К предыдущему изменению
Текущая версия (20:02, 31 мая 2010) (править) (отменить)
Dmih (Обсуждение | вклад)
м (Правки 77.239.235.129 (обсуждение) откачены к версии Anastasya)
 
Строка 1: Строка 1:
-Как 1gb.ru разводит лохов+== Описание проблемы ==
-Кризис размножает жуликов с огромной скоростью. А интернет рай для воров и мошенников. Так как получить ответственность за интернет мошенничество крайне сложно. И вот очередной интернет хостер 1gb.ru вышел на ниву жульничества. И добился там превосходных результатов. + 
-Итак, на главой странице сайта написано о низких ценах и домене в подарок. +Ряд скриптовых технологий исполняются сервером в CGI-режиме, это означает, что на обработку каждого CGI-запроса веб-сервер инициирует запуск отдельного процесса, который обрабатывает запрос, после чего отдаёт результат своей работы веб-серверу и завершается. Веб-сервер отдаёт результат работы CGI-процесса далее по цепочки клиенту (браузеру, например).
-Однако замечательная фраза содержится на странице отказа от заказа+ 
-«Вы можете отказаться от услуг хостинга во время текущего периода оплаты, при этом вам будет возвращены неистраченные средства (пропорционально потраченному времени), за вычетом цены регистрации доменов в подарок, если это происходило в текущем периоде оплаты».+Обработка запросов в CGI-режиме имеет ряд проблем, связанных с тем, что запуск нового процесса это ресурсоёмкая задача: крайне ресурсоёмкая на Windows-сервере и чуть менее (ориентировочно в 6 раз) ресурсоёмкая на Unix-сервере.
-Особенно кайфово звучит фраза: «за вычетом цены регистрации доменов в подарок». Это что за цена регистрации домена в подарок? Как подарок может вообще иметь какую-либо цену? Вот страница для тех кто не верит.+ 
-http://www.1gb.ru/default.aspx?ti=6&hti=104+На хостинге [http://www.1gb.ru 1Gb.ru] в CGI-режиме исполняются следующие скрипты:
-То есть они честно говорят, что их подарок имеет некую цену регистрации. Хорош подарок. Это как парень, отбирающий у девушки свои подарки после расставания.+ 
-Сама эта фраза по себе показывает, в чем состоит мошенничество этого ресурса.+* PHP
-Ну ладно хитрый маркетинговый ход скажите вы. Но не все так просто.+** на платформе Windows/IIS
-Как только вы закажите там услуги хостинга, то вы выясняете, что 30% времени ваш сайт не работает вообще. Он висит или отвратительно долго грузится. Когда вы начинаете этому возмущаться, то вам предлагают резво вернуть деньги. Но вы должны выполнить следующие условия: «Прежде всего, необходимо убедиться, что в личном кабинете заполнены все реквизиты клиента» +** на платформе Unix при выборе соответствующего режима
-И тут есть ключевой момент. Если вы заполните эти данные, то на вас сразу же оформят домен. Без этих данных оформить домен они не могут. А как только оформят домен (который дается типа в подарок :-)) вы уже лишитесь 750 рублей. И домен типа обратно перерегистрировать нельзя. И жулик с песнями бежит делить капусту, которую получил продав домен с наваром 350 рублей. А при оптовых ценах еще выше. А вы остаетесь с носом или с доменом. Переплатив за него почти половину стоимости. В любом случае ни о каком хостинге говорить не приходится.+* Perl
-А они еще спрашивают сами себя, а почему такие низкие цены? Да вот почему, потому что ничего за эти деньги они не делают. Халявный сыр как известно в мышеловке.+* [[Parser]]
 +* некоторые другие
 + 
 +Для режима работы сервера с запросами в CGI-режиме может наступить некоторая критическая ситуация, характеризующаяся большим количеством единовременно исполняющихся процессов, обрабатывающих CGI-запросы. Когда этих процессов больше какого-то лимита, то это может сигнализировать как об атаке на какой-то сайт, так и о проблемных скриптах (в общем виде обработка одного запроса должна происходить быстро и не затягиваться по времени), исполнение которых нежелательно. Если такую ситуацию игнорировать, то число процессов будет увеличиваться и это приведёт к резкому снижению производительности сервера вплоть до отказа в обслуживании.
 + 
 +Что бы исключить такие ситуации на хостинге [http://www.1gb.ru 1Gb.ru] реализована специальная служба мониторинга, которая контролирует запущенные процессы и в случае превышения лимита принимает решение о прекращении исполнения процессов и оповещает об этом администраторов хостинга.
 + 
 +Число процессов ориентировочно следующее:
 + 
 +* 35 для x86-сервера
 +* 100 для x64-сервера
 + 
 +Превышение указанного числа и уничтожение исполняемых процессов плохо по следующим соображениям:
 + 
 +* Исполнение запросов прерывается, производимые ими действия не завершаются
 +* Прерываются CGI-процессы всех пользователей сервера а не только проблемного рессурса
 + 
 +== Перспективы ==
 + 
 +Если ресурс является инициатором подобной критической ситуации на постоянной основе, то администрация хостинга самостоятельно принимает необходимые действия (в том числе и без предварительного предупреждения) для решения проблемы, вплоть до остановки ресурса. Функционирование ресурса с указанной проблемой на виртуальном хостинге невозможно.
 + 
 +== Пути решения проблемы ==
 + 
 +* Если проблема относится к скриптам PHP, то сайт может быть переведён на веб-сервер (как правило - Apache), исполняющий процессы не в CGI-режиме, а в модуле.
 +** Если вам необходимо использовать Windows-технологии (например ASP или ASPX), то вы можете перенести на Apache только часть сайта, выделив её в отдельный сайт с доменом 3-его уровня, например forum.example.com
 +* Если проблема относится к скриптам, для которых на хостинге отсутствует возможность работы в режиме модуля, то сайт можно перенести на Unix-сервер, исполняющий CGI-запросы чуть более эффективно
 +* Всё переписать отказавшись от проблемной технологии
 +* Найти другой хостинг
 + 
 +[[Категория:Серверная нагрузка]]

Текущая версия

[править] Описание проблемы

Ряд скриптовых технологий исполняются сервером в CGI-режиме, это означает, что на обработку каждого CGI-запроса веб-сервер инициирует запуск отдельного процесса, который обрабатывает запрос, после чего отдаёт результат своей работы веб-серверу и завершается. Веб-сервер отдаёт результат работы CGI-процесса далее по цепочки клиенту (браузеру, например).

Обработка запросов в CGI-режиме имеет ряд проблем, связанных с тем, что запуск нового процесса это ресурсоёмкая задача: крайне ресурсоёмкая на Windows-сервере и чуть менее (ориентировочно в 6 раз) ресурсоёмкая на Unix-сервере.

На хостинге 1Gb.ru в CGI-режиме исполняются следующие скрипты:

  • PHP
    • на платформе Windows/IIS
    • на платформе Unix при выборе соответствующего режима
  • Perl
  • Parser
  • некоторые другие

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

Что бы исключить такие ситуации на хостинге 1Gb.ru реализована специальная служба мониторинга, которая контролирует запущенные процессы и в случае превышения лимита принимает решение о прекращении исполнения процессов и оповещает об этом администраторов хостинга.

Число процессов ориентировочно следующее:

  • 35 для x86-сервера
  • 100 для x64-сервера

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

  • Исполнение запросов прерывается, производимые ими действия не завершаются
  • Прерываются CGI-процессы всех пользователей сервера а не только проблемного рессурса

[править] Перспективы

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

[править] Пути решения проблемы

  • Если проблема относится к скриптам PHP, то сайт может быть переведён на веб-сервер (как правило - Apache), исполняющий процессы не в CGI-режиме, а в модуле.
    • Если вам необходимо использовать Windows-технологии (например ASP или ASPX), то вы можете перенести на Apache только часть сайта, выделив её в отдельный сайт с доменом 3-его уровня, например forum.example.com
  • Если проблема относится к скриптам, для которых на хостинге отсутствует возможность работы в режиме модуля, то сайт можно перенести на Unix-сервер, исполняющий CGI-запросы чуть более эффективно
  • Всё переписать отказавшись от проблемной технологии
  • Найти другой хостинг
Личные инструменты