За последние 24 часа нас посетили 15596 программистов и 1551 робот. Сейчас ищут 875 программистов ...

Ошибка 500 при ~30 онлайн

Тема в разделе "Прочие вопросы по PHP", создана пользователем boo, 3 мар 2010.

  1. boo

    boo Активный пользователь

    С нами с:
    16 мар 2008
    Сообщения:
    84
    Симпатии:
    0
    Ошибка 500, и медлено открывает страницу. онлайн 30 примерно. ночью 10.
    Хостер пишет что вина целиком и полностью на программере системы
    приводя в пример что в логах Апача есть ошибки. кроме "File does not exist" насторожила такая -
    PHP:
    1.  
    2. [Wed Mar 03 15:44:18 2010] [error] [client **.**.157.251] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
    3.  
    ещё показывают график, что много запросов к БД ~350 в сек
    сервер виртуальный Ram 8Gb, 4 ядра Quad Core Pentium 2.5

    На что грешить? куда смотреть? Интересует именно эта ошибка и реально ли так тормозить при таком сервере. Запросы в базу идут не тяжёлые....
     
  2. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    mod_rewrite не так отрабатывает?
     
  3. именно эта ошибка может реально тормозить, особенно если правила для реврайта лежат в .htaccess
    Но думаю, не она одна.
     
  4. boo

    boo Активный пользователь

    С нами с:
    16 мар 2008
    Сообщения:
    84
    Симпатии:
    0
    mod_rewrite - действительно лежит в .htaccess
    замен много(не больше 10) такого типа:
    Код (Text):
    1.  
    2. RewriteRule ^new$ new.php
    3. RewriteRule ^new/$ new.php
    4. RewriteRule ^new\/([0-9]+)$ new.php?page=$1
    5. RewriteRule ^new\/([a-zA-Z+]+)$ new.php?country=$1
    6. RewriteRule ^new\/([a-zA-Z+]+)\/$ new.php?country=$1
    7. RewriteRule ^new\/([a-zA-Z+]+)\/([0-9]+)$ new.php?country=$1&page=$2
    8. RewriteRule ^new\/([a-zA-Z+]+)\/([a-zA-Z+]+)$ new.php?country=$1&city=$2
    9. RewriteRule ^new\/([a-zA-Z+]+)\/([a-zA-Z+]+)\/$ new.php?country=$1&city=$2
    10. RewriteRule ^new\/([a-zA-Z+]+)\/([a-zA-Z+]+)\/([0-9]+)$ new.php?country=$1&city=$2&page=$3
    неверно работать может из-за ошибок в .htaccess? или тормазит потому что много rewrite? сделана ЧПУ таким образом.
    Если можно, посоветуйте чем проверит можно, что именно? в системе Ram и Cpu остаются не загружены на всю...
    Стоит ли сменить хостиг? Подумываю об этом..
    ps: опять же не по тематике раздела пишу, извиняюсь...
     
  5. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    в httpd.conf или виртуальном хосте, возможно с хостером, укажите
    и ловите свои зацикленные преобразования
     
  6. boo

    boo Активный пользователь

    С нами с:
    16 мар 2008
    Сообщения:
    84
    Симпатии:
    0
    Спасибо, благо хостер поёшл на уступки, и щас делать логирование
     
  7. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    А есть результаты каких-нибудь тестов влияния правил modrewrite на .htaccess на производительность? Будет ли разница при 1000 хитов в час?
     
  8. Вот насчет результатов - не знаю. Проблема в том, что механизм работает примерно так:

    1. Разбирается урл, по результатам соответствия правилам реврайта (разобранных за 1 раз при запуске апача), виртуальных хостов, еще чего то формируется документ_рут
    2. В полученном документ_руте ищется хтацесс
    3. Если он найден, разбирается хтаццесс, или если правил больше нет, то продолжается вызовы уже модуля, обслуживающего дефолтный документ
    4. После разбора хтаццеса и добавления правил из него к списку правил ВЕСЬ произошедший разбор урла СБРАСЫВАЕТСЯ, и апач едет к п.1 с новыми правилами из хтаццеса и повторяет весь процесс заново, но уже не ища хтаццес.

    В результате, при реврайт правилах в конфиге сервера просходят пункты 1,2,3
    при наличии реврайтов в хтаццессе - 1,2,3,4,1,2,3