Страница 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
Вот так вот все и происходит...
https://www.youtube.com/watch?v=VxeEAcpDumI

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 писал(а):хрен там
насяльнике.... ты это.. того... сильно не ругайся)))
ПЫ.СЫ. у меня ниче не тормозит... разве что сам иногда :hehehe:

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

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