Продолжаем хаить форум

Аватара пользователя
Nick
Мастер
Сообщения: 21816
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Продолжаем хаить форум

Сообщение Nick »

SVP писал(а):Да он должен кравл-делей слушать, добавь в вебмастера и настрой.
Если не слушает, то написать в техподдержку. Вообще бот должен и без этого нормально работать, но похоже есть какие-то проблемы с этим.
не слушает, пробовал, техподдержку писал - говорят все норм, нашли обращения по логам, но типо все отдается быстро.
Perlovka писал(а):А почему бы просто его не забанить на выдачу файлов по юзер агенту?
ну все таки, хочется быть в яндексе ;)

ЗЫ нашел хинт, что может feof глючить
поменял в file.php:

Код: Выделить всё

				while (!feof($fp))
				{
					echo fread($fp, 8192);
				}
				fclose($fp);
на

Код: Выделить всё

				while ( ($buffer = fread($fp, 8192)) !== false )
				{
					echo $buffer;
				}
				fclose($fp);
Вроде сразу полетело, но может повезло... :roll:
Совет отсюда https://searchengines.guru/showthread.php?t=678383

Если в этом косяк, тогда интересно, почему только на Яндекса такая реакция?
Аватара пользователя
Nick
Мастер
Сообщения: 21816
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Продолжаем хаить форум

Сообщение Nick »

А нет, похоже хрен там, просто совпало...
Аватара пользователя
MX_Master
Мастер
Сообщения: 6822
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Продолжаем хаить форум

Сообщение MX_Master »

Николай, я, обычно, с SVP почти никогда не солидарен. Но в данном случае он прав насчёт раздельной статики и динамики. Апач - это самый наимедлейший обработчик статики. А если он занят и тем, и другим на крупном ресурсе, можно тушить свет.
Аватара пользователя
Nick
Мастер
Сообщения: 21816
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Продолжаем хаить форум

Сообщение Nick »

да тут то и прикол в том, что для отдачи этой "статики" на которой все висит - нужен апач - он лазит по БД, смотрит сессии и прочие штукам.
добавил еще до кучи таймаут на отдачу файла.
Если забирать медленнее 10к в секунду - то отвалится... точнее отвалится, если будет отдавать дольше, чем отдавал бы по 10к

Код: Выделить всё

$timeout = time()+ceil($size/10000) ;
				while ( ($buffer = fread($fp, 8192)) !== false )
				{
					echo $buffer;
					if (time()>$timeout)break; 
				}
				fclose($fp);		
Аватара пользователя
MX_Master
Мастер
Сообщения: 6822
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Продолжаем хаить форум

Сообщение MX_Master »

По идее, публичные вложения должны лежать в отдельном месте и проверок на право их чтения ваще не должно быть. Такие вложения (и прочие публичные файлы) надо отдать на обработку отдельному веб-серверу. Яндекс и юзеры будут довольны.

Все остальные вложения должны лежать в приватном месте. Если их хочет скачать не юзер, он получает 403 и идёт лесом. На этом этапе все Яндексы и гости будут отсеяны. А вот теперь уже можно пробить юзера по сессии, и если права у него есть - отдать файл через PHP скрипт.

Как-то так
Аватара пользователя
Perlovka
Новичок
Сообщения: 3
Зарегистрирован: 08 апр 2019, 01:24
Репутация: 0
Настоящее имя: Михаил
Контактная информация:

Re: Продолжаем хаить форум

Сообщение Perlovka »

Nick писал(а):ну все таки, хочется быть в яндексе ;)
Так никто и не говорит вообще его забанить. Просто закрыть доступ к /forum/download/file.php некоторым юзер агентам. А остальное пусть индексирует =)
Аватара пользователя
Serg
Мастер
Сообщения: 20561
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Продолжаем хаить форум

Сообщение Serg »

Nick писал(а):ЗЫ нашел хинт, что может feof глючить
Сомнительно. Там просто нечему глючить - он просто возвращает "статус" канала, а "взводится" он именно всякими fread, fgets.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Perlovka
Новичок
Сообщения: 3
Зарегистрирован: 08 апр 2019, 01:24
Репутация: 0
Настоящее имя: Михаил
Контактная информация:

Re: Продолжаем хаить форум

Сообщение Perlovka »

Nick писал(а):да тут то и прикол в том, что для отдачи этой "статики" на которой все висит - нужен апач - он лазит по БД
По ДБ лазит PHP, апач вовсе необязателен. Nginx + php-fpm справляются с этой задачей в разы лучше, гибче и быстрее )

Например, мое предложение в конфиге nginx выглядит примерно так:

Код: Выделить всё

location /forum/downloads/file.php {
    if ( $http_user_agent ~ (Yandex|YaDirect) ) {
        access_log  /var/log/nginx/access_yabot_log www;
        return 201;
    }
}
Аватара пользователя
Nick
Мастер
Сообщения: 21816
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Продолжаем хаить форум

Сообщение Nick »

Вот так вот все и происходит...
https://www.youtube.com/watch?v=VxeEAcpDumI
Аватара пользователя
Serg
Мастер
Сообщения: 20561
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Продолжаем хаить форум

Сообщение Serg »

В основном одни "W" висят. Снова предлагаю посмотреть загрузку сетевого интерфейса - нет-ли там "полки". Иногда вместо тормозов получаю "сервер не отвечает"...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Nick
Мастер
Сообщения: 21816
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Продолжаем хаить форум

Сообщение Nick »

там есть скорость соединения - там
10 requests/sec - 183.1 kB/second - 18.3 kB/request
Что собственно ниочем...
Аватара пользователя
Perlovka
Новичок
Сообщения: 3
Зарегистрирован: 08 апр 2019, 01:24
Репутация: 0
Настоящее имя: Михаил
Контактная информация:

Re: Продолжаем хаить форум

Сообщение Perlovka »

Nick писал(а):добавил еще до кучи таймаут на отдачу файла
Я конечно, извиняюсь, но у вас очень странный метод по решению проблем =) Форум двое суток уже еле дышит, а вы еще и увеличиваете на него нагрузку ) Вполне вероятно, что при отваливании по таймауту прилетит новое соединение с тем же запросом. И будет эта карусель длиться вечно )
Аватара пользователя
Nick
Мастер
Сообщения: 21816
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Продолжаем хаить форум

Сообщение Nick »

Perlovka писал(а):Вполне вероятно, что при отваливании по таймауту прилетит новое соединение с тем же запросом. И будет эта карусель длиться вечно )
хрен его знает.... учитывая то, что процесс и так подвисал но только до 300 секунд...
SVP
Мастер
Сообщения: 5886
Зарегистрирован: 19 дек 2012, 15:49
Репутация: 884
Откуда: Москва
Контактная информация:

Re: Продолжаем хаить форум

Сообщение SVP »

Nick писал(а):да тут то и прикол в том, что для отдачи этой "статики" на которой все висит - нужен апач - он лазит по БД, смотрит сессии и прочие штукам.
добавил еще до кучи таймаут на отдачу файла.
Мрак какой...
Для ОТДАЧИ апач не нужен, апач нужен для того, чтобы сформировать ответ, а ОТДАВАТЬ можно и нужно нгиксом. (это если хочется апачем формировать)
Есть вполне сформировавшийся тулчейн, можно игнорить его существование и "бродить по граблям", можно один раз настроить и либо попросту "отпустит", либо уже в нём настроить банально для яндекса leaky buсket и просто выдавать ему 503 при запросах больше чем N в минуту, и скорее всего он подстроится довольно шустро.

Но вообще, боюсь, время переделать форум в части хранения изображений.
В том смысле, что пора декларировать что они общедоступны и выдавать их именно как статику... но скорее всего после описанного выше не понадобится.
Аватара пользователя
Serg
Мастер
Сообщения: 20561
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Продолжаем хаить форум

Сообщение Serg »

Nick писал(а):Что собственно ниочем...
Да, нужен график загрузки сетевого интерфейса - только так можно будет увидеть "полку", если она есть и по её уровню попробовать понять причину.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Perlovka
Новичок
Сообщения: 3
Зарегистрирован: 08 апр 2019, 01:24
Репутация: 0
Настоящее имя: Михаил
Контактная информация:

Re: Продолжаем хаить форум

Сообщение Perlovka »

UAVpilot писал(а):Да, нужен график загрузки сетевого интерфейса - только так можно будет увидеть "полку", если она есть и по её уровню попробовать понять причину.
Зачем? Судя по видео, там 30 kbps на 100 запросов, 0.6 мбит. О какой загрузке идет речь?

Я бы смотрел на disk I/O.
Аватара пользователя
Serg
Мастер
Сообщения: 20561
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Продолжаем хаить форум

Сообщение Serg »

Perlovka писал(а):Зачем? Судя по видео, там 30 kbps на 100 запросов, 0.6 мбит. О какой загрузке идет речь?
Я ж в предыдущем посте чётко написал "загрузки сетевого интерфейса" и написал, что в основном экземляры апача висят на отдаче байтов. Спрашивается: а почему они так долго отдают? Может все эти отдаваемые байты в канал не пролазят?..
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Nick
Мастер
Сообщения: 21816
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Продолжаем хаить форум

Сообщение Nick »

Там за все это время отдано несколько Мб. Все там полезет. Тем более, пока под совсем не забит сервер очень бодро отдает странички с картинками и всем остальным.

Почему то Яндекс только не до конца принимает картинку... Толи что-то ещё...

Кстати, ее может он каким то образом на размер в заголовке смотреть и переставать забирать файл после того, как выбрал нужный размер?
SVP
Мастер
Сообщения: 5886
Зарегистрирован: 19 дек 2012, 15:49
Репутация: 884
Откуда: Москва
Контактная информация:

Re: Продолжаем хаить форум

Сообщение SVP »

UAVpilot писал(а):Я ж в предыдущем посте чётко написал "загрузки сетевого интерфейса" и написал, что в основном экземляры апача висят на отдаче байтов. Спрашивается: а почему они так долго отдают? Может все эти отдаваемые байты в канал не пролазят?..
А может в память они не пролазят(после каждого куска читаются с диска и ждут освобождения памяти под размещение), а может в диск(часто читаются, потому как хранить негде, кеша нет т.к. 0 пустой памяти итп).

Но проблема нифига не в этом, а в том, сколько ресурсов занимает этот процесс...
Занимал бы он не сотни мегабайт, а тысячи байт и былоб пофиг сколько файлов запросил яндекс.
Аватара пользователя
Nick
Мастер
Сообщения: 21816
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Продолжаем хаить форум

Сообщение Nick »

SVP писал(а):А может в память они не пролазят(после каждого куска читаются с диска и ждут освобождения памяти под размещение), а может в диск(часто читаются, потому как хранить негде, кеша нет т.к. 0 пустой памяти итп).
Имхо нет - по видео видно, как эти процессы подвисают по одной штуке. Файлы там зачастую маленькие. При этом до тех пор пока пул не забьется - форум летает и отдает и файлы и старнички очень быстро. Просто яндекс их не забирает...
Ответить

Вернуться в «Обсуждение сайта»