Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Что лучше использовать: include или ssi для включения файлов?
 
 автор: webwizard   (04.04.2008 в 17:54)   письмо автору
 
 

Здравствуйте.

Впервые столкнулся с проблемой критической перегрузки сервера.
Вся проблема в том, что робот Яндекса сканирую мой сайт создал жуткую перегрузку 24% из 3.5% допустимых, в результате чего сайт отключили.

Я анализировал веб-логи, звонил в службу поддержки и итог таков: всё из-за бешенной скорости сканирования сайта роботом Яндекса, более 10 страниц в секунду.

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

Так вот в службе поддержки говорят, что такая нагрузка из-за использования include и говорят, что лучше использовать ssi вставки, или ещё лучше - это генерация php скриптом статических страниц и загрузкой их на сайт? Вот этот момент мне не очень понятен, у меня и так все страницы статические!

1.Подскажите, пожалуйста, include разве создаёт такую нагрузку?

2. И как быть тогда в ситуации, когда навигационное меню должно быть на каждой странице? Как его тогда подключать?

3. А можно делать так: все страницы делать с расширением не php, а html, но естественно с включением кода на php в нужных местах страницы? Это как-то отражается на производительности?

Пожалуйста, ответье, а то я попал в неприятную ситуацию и надежда только на Вас.

Я очень надеюсь на Вашу помощь.

Заранее большое Вам спасибо

   
 
 автор: skor   (04.04.2008 в 19:14)   письмо автору
 
   для: webwizard   (04.04.2008 в 17:54)
 

ЗЫ невтему канешн но улыбнула первая статья на сайте


Как повысить Индекс Цитирования сайта (ИЦ) и получить дополнительно посетителей на свой сайт?


а на странице очень много инклудов?
помоему просто хостер поставил сильное ограничение на ресуры, потому что 10 страниц в секунду не так уж и много....

   
 
 автор: Giga   (04.04.2008 в 19:38)   письмо автору
 
   для: webwizard   (04.04.2008 в 17:54)
 

Врятли тут includы при делах, скорее всего поддержка твоего хостинга слепила ума. Даже если они добавляют нагрузку то скорее всего небольшую, в рамках нескольких %. А насчет бота яндекса то под его видом мог хацкер влезть. Ты по USER_AGENT его определил или по IP? Юзером можно любым представится и долбить сайт, будь то MSN, Google и пр. Точно также наоборот по наблюдениям некоторые боты прячутся за вывеской обычных браузеров =)

   
 
 автор: webwizard   (05.04.2008 в 06:10)   письмо автору
 
   для: Giga   (04.04.2008 в 19:38)
 

Спасибо за ответы.

Это точно бот Яндекса, мы вместе с службой поддержки анализирования IP адреса и статистику веб-логов, однозначно Яндекс.

24.14 % (значение критической перегрузки) - 87.250.252.241 (spider01.yandex.ru)

Обычно на странице используется 4-е includа:

<?php include_once('inc/logo.inc'); ?>
<?php 
include_once('inc/menu.inc'); ?>
<?php 
include_once('inc/rigt.inc'); ?>
<?php 
include_once('inc/autor.inc'); ?>


А что лучше использовать require или include Есть ли разница в скорости?

А как насчёт того, чтобы: все страницы делать с расширением не php, а html, но естественно с включением кода на php в нужных местах страницы? Это как-то отражается на производительности?

И чем можно заменить include и вообще стоит ли это делать?

Вообще при построении крупного портала как правильно осуществлять подключение навигационного меню, логотипа и т.п...


Подскажите мне, пожалуйста, решение этих вопросов.

   
 
 автор: vitali   (05.04.2008 в 08:35)   письмо автору
 
   для: webwizard   (05.04.2008 в 06:10)
 

При использовании include_once() - независимо от результатов подгрузки Ваш скрипт продолжает работать, возможно "криво".
При использовании require_once() - Ваш скрипт прекращает работу (фатальная ошибка), если при подгрузке произошли исключительные ситуации.

   
 
 автор: webwizard   (05.04.2008 в 09:47)   письмо автору
 
   для: vitali   (05.04.2008 в 08:35)
 

Это мне всё известно, меня интересуют мои вопросы, но Вам спасибо.

   
 
 автор: skor   (05.04.2008 в 10:59)   письмо автору
 
   для: webwizard   (05.04.2008 в 06:10)
 

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

   
 
 автор: webwizard   (05.04.2008 в 13:07)   письмо автору
 
   для: skor   (05.04.2008 в 10:59)
 

Да код до придела прост, каждая страница по сути представляет html код
(сайт представляет собой архив статей). Никаких баз данных и сложных скриптов вообще нет.
Страницы все статичные и грузятся махом. Include используется только для вставки фрагментов html-кода, таких как логотип, меню и т.п.

   
 
 автор: cheops   (05.04.2008 в 12:14)   письмо автору
 
   для: webwizard   (04.04.2008 в 17:54)
 

1) Нет ли где хитрого зацикливания include-ами?
2) Что во включаемых файлах?
3) Используется ли база данных на сайте?

PS SSI-вставки не всегда можно применить - они же только HTML-вставляют.

   
 
 автор: webwizard   (05.04.2008 в 13:04)   письмо автору
 
   для: cheops   (05.04.2008 в 12:14)
 

Никакого вроде зацикливания нет, я использую конструкцию include_once, всё проверял несколько раз, всё просто и понятно.

Собственно include я использую только для вставки на отдельных страницах сайта обычных html-фрагментов (логотип, навигационное меню и т.п.).
А как ещё можно подключать навигацию? Ведь не править вручную все 980 страниц сайта при внесении изменения в один из пунктов меню?

Базы данных вообще не используются.

   
 
 автор: Хулиган   (05.04.2008 в 13:22)   письмо автору
 
   для: webwizard   (05.04.2008 в 13:04)
 

Может всё-таки лошадь поставить впереди телеги?
Сделать не 980 страниц с инклюдами на каждой из них, а сделать одну страницу с логотипом, навигацией и подвалом. А 980 статей убрать в БД и вставлять по мере необходимости в эту страницу.

Ясно дело, что робот пережёвывая 980 страниц, создаёт нехилую нагрузку на винт, и соответственно на систему в целом.

   
 
 автор: webwizard   (05.04.2008 в 13:27)   письмо автору
 
   для: Хулиган   (05.04.2008 в 13:22)
 

Я думаю, что 980 статических страниц, лучше чем использование базы данных и генерация информации из неё. Ведь будут уже динамические страницы, а это создаст больше нагрузки чем простые страницы.

   
 
 автор: Хулиган   (05.04.2008 в 13:55)   письмо автору
 
   для: webwizard   (05.04.2008 в 13:27)
 

Я думаю, что 980 статических страниц, лучше чем использование базы данных

Если бы это было лучше, люди не придумали бы такое понятие, как База данных.

Ведь будут уже динамические страницы, а это создаст больше нагрузки чем простые страницы.

Это будет 1 страница. И вся нагрузка будет в виде 1 sql-запроса, который выполняется за сотую долю секунды. И сравните это со временем, которое необходимо для чтения 980 страниц

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

   
 
 автор: Atheist   (05.04.2008 в 14:28)   письмо автору
 
   для: Хулиган   (05.04.2008 в 13:55)
 

> Если бы это было лучше, люди не придумали бы такое понятие, как База данных.
Не лучше, конечно. Но в плане скорости статическая информация по определению будет быстрее отдаваться, чем динамическая.

> Это будет 1 страница. И вся нагрузка будет в виде 1 sql-запроса, который выполняется за сотую долю секунды. И сравните это со временем, которое необходимо для чтения 980 страниц
Сервер отдаёт сразу 980 страниц? Иначе с какой стати он будет считывать их всех? А при отдаче статической страницы не будет вообще запросов. Поскольку ноль меньше "сотой доли секунды", то очевидно, что ты привел неубедительный аргумент.

   
 
 автор: webwizard   (05.04.2008 в 15:55)   письмо автору
 
   для: Atheist   (05.04.2008 в 14:28)
 

Вот, я тоже самое пишу. Я полностью согласен с Вами Atheist

   
 
 автор: webwizard   (05.04.2008 в 15:53)   письмо автору
 
   для: Хулиган   (05.04.2008 в 13:55)
 

Я думаю Вы не правы, Хулиган. Страниц бывает и в несколько раз больше, но поисковые системы не индексируют такие сайты сразу, а заходят периодически.

К тому же индексация сайта, который лежит в базе данных может вызвать больше нагрузки, чем статические файлы. И ещё один момент, для поисковиков лучше чтобы страницы были статические, индексация будет происходить быстрее и качественнее.

   
 
 автор: ddhvvn   (05.04.2008 в 15:58)   письмо автору
 
   для: webwizard   (05.04.2008 в 15:53)
 

>К тому же индексация сайта, который лежит в базе данных может вызвать больше нагрузки, чем статические файлы. И ещё один момент, для поисковиков лучше чтобы страницы были статические, индексация будет происходить быстрее и качественнее.

Это интересно почему же? И как вообще они понимают где статические, гди динамические страницы? И надо сказать, что тут вы несколько исказили понятия статических/динамических страниц!

   
 
 автор: webwizard   (05.04.2008 в 16:02)   письмо автору
 
   для: ddhvvn   (05.04.2008 в 15:58)
 

Ну как поисковики понимаю такие страницы, лучше обратиться к ним непосредственно, но уверяю, что они это делают отлично.
Можно почитат об этом более подробно на форуме оптимизаторов

По поводу индексации страниц статических и динамических есть статистика, которую я анализировал на хосте и показатели нагрузки при индексации сайта, состоящего из статических страниц были не больше 0.04% в час. А при динамических 0.5 и больше.

   
 
 автор: ddhvvn   (05.04.2008 в 16:04)   письмо автору
 
   для: webwizard   (05.04.2008 в 16:02)
 

Чушь! Поисковики ходят по ссылкам. Они не занимаются сканированием!

   
 
 автор: webwizard   (05.04.2008 в 16:08)   письмо автору
 
   для: ddhvvn   (05.04.2008 в 16:04)
 

Ну всё верно, одно дело ссылка имеет вид
http://www.articlesworld.ru/webtex.php

а совсем другое дело, если ссылка имеет вот такой вид:
http://go.1ps.ru/pr/?do=m3&fm_plan=elita&price=600&str=34d

Вы считает что это одно и тоже и робот яндекса не определит где статичекская страница, а где динамическая?

Я считаю, что Вам стоит внимательно почитать вот эту к примеру статью
http://www.searchengines.ru/articles/004504.html

   
 
 автор: ddhvvn   (05.04.2008 в 18:13)   письмо автору
 
   для: webwizard   (05.04.2008 в 16:08)
 

А я считаю, что Вам следует узнать о такой замечательной вещи, как ЧПУ!

А на счет вида ссылок Вы правы.

   
 
 автор: Atheist   (05.04.2008 в 13:43)   письмо автору
 
   для: webwizard   (04.04.2008 в 17:54)
 

> 1.Подскажите, пожалуйста, include разве создаёт такую нагрузку?
Нет. Надо смотреть код, который ты подключаешь, а не на конструкцию include.

> 3. А можно делать так: все страницы делать с расширением не php, а html, но естественно с включением кода на php в нужных местах страницы? Это как-то отражается на производительности?
Нет.

   
 
 автор: webwizard   (05.04.2008 в 13:56)   письмо автору
 
   для: Atheist   (05.04.2008 в 13:43)
 

Спасибо, Atheist

Вот пример подключаемого кода (это обычный html-файл):

(нижняя часть)


<TABLE border = "0" width = "100%" bgColor = '#666666'>
  <TR>
   <TH height = '20'><font color = 'silver' size = '4'><b>Все права защищены. "Целебные дары Алтая", &copy; 2008г.</b></font></TH>
  </TR>

  <TR>
   <TH height = '20'>  здесь коды счётчиков майла, рамблера и liveinternet </TH>
  </TR>

</TABLE>


Все остальные части абсолютно подобные.... только используется своя текстовка

Разве это может создавать нагрузку? Мне кажеться, что вообще никакой нагрузки быть не должно.

   
 
 автор: Atheist   (05.04.2008 в 14:23)   письмо автору
 
   для: webwizard   (05.04.2008 в 13:56)
 

Раз нет кода для исполнения, то используй readfile() вместо include. Но вообще лучше сменить хостера.

   
 
 автор: webwizard   (05.04.2008 в 15:57)   письмо автору
 
   для: Atheist   (05.04.2008 в 14:23)
 

Спасибо за ответ, Atheist, но всё же я оставлю include. Я считаю что такая дикая перегрузка из-за косяка Яндекса, сайт хостер обещал включить сегодня.

   
 
 автор: Atheist   (05.04.2008 в 18:08)   письмо автору
 
   для: webwizard   (05.04.2008 в 15:57)
 

> но всё же я оставлю include
Зачем?

   
 
 автор: skor   (05.04.2008 в 19:05)   письмо автору
 
   для: webwizard   (05.04.2008 в 15:57)
 

Да лучший вариант - смена хостера.

   
 
 автор: Хулиган   (05.04.2008 в 20:28)   письмо автору
 
   для: webwizard   (05.04.2008 в 15:57)
 

Это не косяк яндекса. Это ваши неумеренные аппетиты, помноженные на слабость вашего сервера. Вы хотите сразу двух зайцев убить: проиндексировать в поиске все 980 страниц, повысив вероятность появления в яндексе ссылок на ваш сайт, и при этом не создавать нагрузки на сервер.
Яндекс формирует такое количество запросов, что фактически досит ваш сервер, который не справляется с потоком запросов.
Либо не давайте повода роботу, сократив количество страниц, либо найдите хостера, которого такое количество запросов не повергает в ступор.

   
 
 автор: mihdan   (05.04.2008 в 21:19)   письмо автору
 
   для: webwizard   (05.04.2008 в 15:57)
 

Яндекс тут не при чем! А вот хостер ваш - просто ужас, срочно меняйте его!

   
 
 автор: Хулиган   (05.04.2008 в 21:47)   письмо автору
 
   для: webwizard   (05.04.2008 в 15:57)
 

А что за хостер, кстати?

   
 
 автор: webwizard   (06.04.2008 в 06:41)   письмо автору
 
   для: Хулиган   (05.04.2008 в 21:47)
 

Хулиган, сайт находится в сети более 2-х лет

За это время уже все страницы были полностью проиндексированы, а за неделю я добавляю ещё 5-6 новых страничек, поэтому я всё же считаю, что это косяк Яндекса и как Вы заметили проблема хостера, что для меня является странным, т.к. это впервые за 2 года.

Хостинговая компания очень приличная www.1gb.ru. Имеет десятки тысяч клиентов по словам службы поддержки. Тарифные планы вполне приличные, есть всё!

   
 
 автор: Хулиган   (06.04.2008 в 12:56)   письмо автору
 
   для: webwizard   (06.04.2008 в 06:41)
 

Вы хотите, чтобы яндекс ориентировался на возможности хостинга 1Гб? И снижал скорость?
Не думаю, что это произойдёт. В любом случае у Вас два выхода:
А. переписать свой код, чтобы не зависеть от возможностей хостера
Б. поменять хостера, чтобы ничего не переделывать

Я тоже недавно решал подобную проблему: с одного хоста страница грузилась в долю секунды, а с другого - по пол-минуты и более. В итоге я выбрал способ А и переписал код. Теперь меня не волнуют возможности хостера, да и самому приятнее, когда код оформлен правильно. Чего и вам желаю.

   
 
 автор: webwizard   (06.04.2008 в 20:02)   письмо автору
 
   для: Хулиган   (06.04.2008 в 12:56)
 

Хулиган, спасибо за помощь.

Но если честно не могу понять, как код лучше переписать код!!!!

Заменить везде include на readfile?

Статические страницы, что тут можно менять?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования