Измерение влияния на производительность сервера благодаря PHP, URI-маршрутизации - PullRequest
2 голосов
/ 14 июня 2011

Я нахожусь в процессе доработки того, как компания, в которой я работаю, разрабатывает веб-сайты.По старинке, часто было несколько дублированных php-файлов, которые вызывались для отображения страницы.например, page1.php? id = 5, page2.php? id = 7, где page1.php и page2.php в большинстве случаев были просто копиями одного и того же кода.Это дублирование возникло в результате попыток поддерживать и поддерживать совместимость с унаследованными средами.

Новое предложение, по сути, является чистой переписью, которая маршрутизирует все вызовы через один и тот же файл с использованием .htaccess, mod_rewrite и т. Д.*

Меня попросили показать, однако, положительное или отрицательное влияние, которое это изменение может оказать на сервер.

Этот метод использования только одного файла для обработки запросов уменьшает нагрузку на сервер или увеличиваетвероятность перегрузки сервера, если большое количество людей посетило определенный сайт.Существуют ли какие-либо инструменты, которые могли бы измерить различия в производительности для составления такого отчета?

Ответы [ 2 ]

1 голос
/ 14 июня 2011

Для повышения производительности вы можете сделать простой тест с 2 инструментами из сообщества Apache:

  • ab , что хорошо для базового напряжения
  • httperf
  • Существует также autobench , который построен поверх httperf и который даст вам несколько хороших графиков после воспроизведения некоторых сеансов (сеанс, который можно получить из анализа access.log).

Для действительно простого теста на удар вы также можете использовать простые встроенные средства, подобные этому (изменить реальное имя сайта и IP-адрес, требуется netcat ):

time printf 'GET / HTTP/1.1\nHost:www.google.com\n\n' | nc -w 10 -q 10 209.85.146.103 80 1>/dev/null

Mod-rewrite не окажет большого влияния, но вы должны протестировать его :-) Если у вас много URL для перезаписи, mod-rewrite имеет хороший инструмент: rewriteMap . Вы запишете свое отображение URL во внешний файл, и когда все будет в порядке, вы даже сможете построить хешированную версию этого файла карты , так что вы получите доступ с индексом пепла для каждого URL , это должно быть молниеносно.

0 голосов
/ 14 июня 2011

Если вы поместите правила в основную конфигурацию, а не в файл .htaccess, вы сведете к минимуму влияние на производительность, которое перезаписи будут оказывать на сервер.

Если у вас нет сложных правил перезаписи, накладные расходы, которые добавят перезаписи, могут даже не быть заметны в тестах.

...