Похоже, что сервер не может поддерживать одновременное посещение почти двух или трехсот человек. Мы загрузили несколько новых кодов 29 ноября, и с того дня люди часто видели ошибку 404 Not Found. Сначала мы подумали, что просто потому, что слишком много людей пытаются приехать одновременно, потому что 30 ноября - крайний срок. Но теперь, примерно через неделю, сервер все еще нестабилен, и большую часть времени все еще возникают сообщения «404 Not Found». Даже рано утром, когда я уверен, что мало кто встанет так рано и зайдет на сайт, я все равно не смог зайти на сервер. Я думаю, что что-то не так в нашей конфигурации или в нашем коде.
Мы использовали prefork для нашего модуля mpm (мы пробовали worker.c, но все стало еще хуже, поэтому мы снова заменили его на prefork). Я не могу вспомнить подробную конфигурацию прямо сейчас, но я уверен, что MaxClient и Serverlimit оба настроены на 600 (на самом деле у нас всего менее 500 студентов четвертого курса). И похоже, что Keep Alive установлено на 15 секунд, MaxRequestsPerChild установлено на 100000.
Кроме того, я помню, что, когда мы впервые загружаем какую-то другую информацию, чтобы люди могли ее просмотреть и выбрать, трафик все еще занят, но тогда ничего плохого не произошло. Может быть, это потому, что что-то произошло в новом коде, который мы загружаем 29 ноября. Кто-нибудь знает, какая операция вызовет эту проблему при выполнении кода или по другим причинам1?
Если пользователи получают сообщение 404 Not Found, это не связано с производительностью Apache или сокетами или чем-то подобным.
Если Apache не может открыть соединение (например, достигнув предела MaxClient или не может открыть сокет), пользователи не могут подключиться вообще. Если fastcgi (или любой другой модуль, используемый для подключения к Django) не работает, ошибка 500 Internal Server error.
Вы абсолютно уверены, что загруженный вами код не содержит, например, неуместных
raise Http404