Страница 115 из 162
Re: Продолжаем хаить форум
Добавлено: 09 апр 2019, 15:29
MX_Master
Николай, я, обычно, с SVP почти никогда не солидарен. Но в данном случае он прав насчёт раздельной статики и динамики. Апач - это самый наимедлейший обработчик статики. А если он занят и тем, и другим на крупном ресурсе, можно тушить свет.
Re: Продолжаем хаить форум
Добавлено: 09 апр 2019, 15:34
Nick
да тут то и прикол в том, что для отдачи этой "статики" на которой все висит - нужен апач - он лазит по БД, смотрит сессии и прочие штукам.
добавил еще до кучи таймаут на отдачу файла.
Если забирать медленнее 10к в секунду - то отвалится... точнее отвалится, если будет отдавать дольше, чем отдавал бы по 10к
Код: Выделить всё
$timeout = time()+ceil($size/10000) ;
while ( ($buffer = fread($fp, 8192)) !== false )
{
echo $buffer;
if (time()>$timeout)break;
}
fclose($fp);
Re: Продолжаем хаить форум
Добавлено: 09 апр 2019, 16:00
MX_Master
По идее, публичные вложения должны лежать в отдельном месте и проверок на право их чтения ваще не должно быть. Такие вложения (и прочие публичные файлы) надо отдать на обработку отдельному веб-серверу. Яндекс и юзеры будут довольны.
Все остальные вложения должны лежать в приватном месте. Если их хочет скачать не юзер, он получает 403 и идёт лесом. На этом этапе все Яндексы и гости будут отсеяны. А вот теперь уже можно пробить юзера по сессии, и если права у него есть - отдать файл через PHP скрипт.
Как-то так
Re: Продолжаем хаить форум
Добавлено: 09 апр 2019, 16:11
Perlovka
Nick писал(а):ну все таки, хочется быть в яндексе

Так никто и не говорит вообще его забанить. Просто закрыть доступ к /forum/download/file.php некоторым юзер агентам. А остальное пусть индексирует =)
Re: Продолжаем хаить форум
Добавлено: 09 апр 2019, 16:23
Serg
Nick писал(а):ЗЫ нашел хинт, что может feof глючить
Сомнительно. Там просто нечему глючить - он просто возвращает "статус" канала, а "взводится" он именно всякими fread, fgets.
Re: Продолжаем хаить форум
Добавлено: 09 апр 2019, 16:23
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;
}
}
Re: Продолжаем хаить форум
Добавлено: 09 апр 2019, 16:35
Nick
Re: Продолжаем хаить форум
Добавлено: 09 апр 2019, 16:47
Serg
В основном одни "W" висят. Снова предлагаю посмотреть загрузку сетевого интерфейса - нет-ли там "полки". Иногда вместо тормозов получаю "сервер не отвечает"...
Re: Продолжаем хаить форум
Добавлено: 09 апр 2019, 16:51
Nick
там есть скорость соединения - там
10 requests/sec - 183.1 kB/second - 18.3 kB/request
Что собственно ниочем...
Re: Продолжаем хаить форум
Добавлено: 09 апр 2019, 17:07
Perlovka
Nick писал(а):добавил еще до кучи таймаут на отдачу файла
Я конечно, извиняюсь, но у вас очень странный метод по решению проблем =) Форум двое суток уже еле дышит, а вы еще и увеличиваете на него нагрузку ) Вполне вероятно, что при отваливании по таймауту прилетит новое соединение с тем же запросом. И будет эта карусель длиться вечно )
Re: Продолжаем хаить форум
Добавлено: 09 апр 2019, 17:31
Nick
Perlovka писал(а):Вполне вероятно, что при отваливании по таймауту прилетит новое соединение с тем же запросом. И будет эта карусель длиться вечно )
хрен его знает.... учитывая то, что процесс и так подвисал но только до 300 секунд...
Re: Продолжаем хаить форум
Добавлено: 09 апр 2019, 17:49
SVP
Nick писал(а):да тут то и прикол в том, что для отдачи этой "статики" на которой все висит - нужен апач - он лазит по БД, смотрит сессии и прочие штукам.
добавил еще до кучи таймаут на отдачу файла.
Мрак какой...
Для ОТДАЧИ апач не нужен, апач нужен для того, чтобы сформировать ответ, а ОТДАВАТЬ можно и нужно нгиксом. (это если хочется апачем формировать)
Есть вполне сформировавшийся тулчейн, можно игнорить его существование и "бродить по граблям", можно один раз настроить и либо попросту "отпустит", либо уже в нём настроить банально для яндекса leaky buсket и просто выдавать ему 503 при запросах больше чем N в минуту, и скорее всего он подстроится довольно шустро.
Но вообще, боюсь, время переделать форум в части хранения изображений.
В том смысле, что пора декларировать что они общедоступны и выдавать их именно как статику... но скорее всего после описанного выше не понадобится.
Re: Продолжаем хаить форум
Добавлено: 09 апр 2019, 17:55
Serg
Nick писал(а):Что собственно ниочем...
Да, нужен график загрузки сетевого интерфейса - только так можно будет увидеть "полку", если она есть и по её уровню попробовать понять причину.
Re: Продолжаем хаить форум
Добавлено: 09 апр 2019, 18:06
Perlovka
UAVpilot писал(а):Да, нужен график загрузки сетевого интерфейса - только так можно будет увидеть "полку", если она есть и по её уровню попробовать понять причину.
Зачем? Судя по видео, там 30 kbps на 100 запросов, 0.6 мбит. О какой загрузке идет речь?
Я бы смотрел на disk I/O.
Re: Продолжаем хаить форум
Добавлено: 09 апр 2019, 18:12
Serg
Perlovka писал(а):Зачем? Судя по видео, там 30 kbps на 100 запросов, 0.6 мбит. О какой загрузке идет речь?
Я ж в предыдущем посте чётко написал "загрузки
сетевого интерфейса" и написал, что в основном экземляры апача висят на отдаче байтов. Спрашивается: а почему они так долго отдают? Может все эти отдаваемые байты в канал не пролазят?..
Re: Продолжаем хаить форум
Добавлено: 10 апр 2019, 11:01
Nick
Там за все это время отдано несколько Мб. Все там полезет. Тем более, пока под совсем не забит сервер очень бодро отдает странички с картинками и всем остальным.
Почему то Яндекс только не до конца принимает картинку... Толи что-то ещё...
Кстати, ее может он каким то образом на размер в заголовке смотреть и переставать забирать файл после того, как выбрал нужный размер?
Re: Продолжаем хаить форум
Добавлено: 10 апр 2019, 12:12
SVP
UAVpilot писал(а):Я ж в предыдущем посте чётко написал "загрузки сетевого интерфейса" и написал, что в основном экземляры апача висят на отдаче байтов. Спрашивается: а почему они так долго отдают? Может все эти отдаваемые байты в канал не пролазят?..
А может в память они не пролазят(после каждого куска читаются с диска и ждут освобождения памяти под размещение), а может в диск(часто читаются, потому как хранить негде, кеша нет т.к. 0 пустой памяти итп).
Но проблема нифига не в этом, а в том, сколько ресурсов занимает этот процесс...
Занимал бы он не сотни мегабайт, а тысячи байт и былоб пофиг сколько файлов запросил яндекс.
Re: Продолжаем хаить форум
Добавлено: 10 апр 2019, 13:16
Nick
SVP писал(а):А может в память они не пролазят(после каждого куска читаются с диска и ждут освобождения памяти под размещение), а может в диск(часто читаются, потому как хранить негде, кеша нет т.к. 0 пустой памяти итп).
Имхо нет - по видео видно, как эти процессы подвисают по одной штуке. Файлы там зачастую маленькие. При этом до тех пор пока пул не забьется - форум летает и отдает и файлы и старнички очень быстро. Просто яндекс их не забирает...
Re: Продолжаем хаить форум
Добавлено: 10 апр 2019, 13:29
NightV
Nick писал(а):хрен там
насяльнике.... ты это.. того... сильно не ругайся)))
ПЫ.СЫ. у меня ниче не тормозит... разве что сам иногда

Re: Продолжаем хаить форум
Добавлено: 10 апр 2019, 13:47
al_us
я думаю это всё изза gif файлов которые не прячут под спойлер
