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

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

Сообщение MX_Master » 09 апр 2019, 15:29

Николай, я, обычно, с SVP почти никогда не солидарен. Но в данном случае он прав насчёт раздельной статики и динамики. Апач - это самый наимедлейший обработчик статики. А если он занят и тем, и другим на крупном ресурсе, можно тушить свет.
MX_Master
Мастер
 
Сообщения: 4864
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 2217
Медальки:

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

Сообщение Nick » 09 апр 2019, 15:34

да тут то и прикол в том, что для отдачи этой "статики" на которой все висит - нужен апач - он лазит по БД, смотрит сессии и прочие штукам.
добавил еще до кучи таймаут на отдачу файла.
Если забирать медленнее 10к в секунду - то отвалится... точнее отвалится, если будет отдавать дольше, чем отдавал бы по 10к
Код: Выделить всёРазвернуть
$timeout = time()+ceil($size/10000) ;
            while ( ($buffer = fread($fp, 8192)) !== false )
            {
               echo $buffer;
               if (time()>$timeout)break;
            }
            fclose($fp);      
Аватара пользователя
Nick
Мастер
 
Сообщения: 22543
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1573
Заслуга: Developer
Медальки:

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

Сообщение MX_Master » 09 апр 2019, 16:00

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

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

Как-то так
MX_Master
Мастер
 
Сообщения: 4864
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 2217
Медальки:

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

Сообщение Perlovka » 09 апр 2019, 16:11

Nick писал(а):ну все таки, хочется быть в яндексе ;)

Так никто и не говорит вообще его забанить. Просто закрыть доступ к /forum/download/file.php некоторым юзер агентам. А остальное пусть индексирует =)
Аватара пользователя
Perlovka
Новичок
 
Сообщения: 8
Зарегистрирован: 08 апр 2019, 01:24
Репутация: 0
Настоящее имя: Михаил

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

Сообщение UAVpilot » 09 апр 2019, 16:23

Nick писал(а):ЗЫ нашел хинт, что может feof глючить

Сомнительно. Там просто нечему глючить - он просто возвращает "статус" канала, а "взводится" он именно всякими fread, fgets.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 18932
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 4593
Медальки:
Настоящее имя: Сергей

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

Сообщение Perlovka » 09 апр 2019, 16:23

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;
    }
}
Аватара пользователя
Perlovka
Новичок
 
Сообщения: 8
Зарегистрирован: 08 апр 2019, 01:24
Репутация: 0
Настоящее имя: Михаил

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

Сообщение Nick » 09 апр 2019, 16:35

Вот так вот все и происходит...
https://www.youtube.com/watch?v=VxeEAcpDumI
Аватара пользователя
Nick
Мастер
 
Сообщения: 22543
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1573
Заслуга: Developer
Медальки:

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

Сообщение UAVpilot » 09 апр 2019, 16:47

В основном одни "W" висят. Снова предлагаю посмотреть загрузку сетевого интерфейса - нет-ли там "полки". Иногда вместо тормозов получаю "сервер не отвечает"...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 18932
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 4593
Медальки:
Настоящее имя: Сергей

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

Сообщение Nick » 09 апр 2019, 16:51

там есть скорость соединения - там
10 requests/sec - 183.1 kB/second - 18.3 kB/request
Что собственно ниочем...
Аватара пользователя
Nick
Мастер
 
Сообщения: 22543
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1573
Заслуга: Developer
Медальки:

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

Сообщение Perlovka » 09 апр 2019, 17:07

Nick писал(а):добавил еще до кучи таймаут на отдачу файла

Я конечно, извиняюсь, но у вас очень странный метод по решению проблем =) Форум двое суток уже еле дышит, а вы еще и увеличиваете на него нагрузку ) Вполне вероятно, что при отваливании по таймауту прилетит новое соединение с тем же запросом. И будет эта карусель длиться вечно )
Аватара пользователя
Perlovka
Новичок
 
Сообщения: 8
Зарегистрирован: 08 апр 2019, 01:24
Репутация: 0
Настоящее имя: Михаил

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

Сообщение Nick » 09 апр 2019, 17:31

Perlovka писал(а):Вполне вероятно, что при отваливании по таймауту прилетит новое соединение с тем же запросом. И будет эта карусель длиться вечно )

хрен его знает.... учитывая то, что процесс и так подвисал но только до 300 секунд...
Аватара пользователя
Nick
Мастер
 
Сообщения: 22543
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1573
Заслуга: Developer
Медальки:

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

Сообщение SVP » 09 апр 2019, 17:49

Nick писал(а):да тут то и прикол в том, что для отдачи этой "статики" на которой все висит - нужен апач - он лазит по БД, смотрит сессии и прочие штукам.
добавил еще до кучи таймаут на отдачу файла.


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

Но вообще, боюсь, время переделать форум в части хранения изображений.
В том смысле, что пора декларировать что они общедоступны и выдавать их именно как статику... но скорее всего после описанного выше не понадобится.
SVP
Мастер
 
Сообщения: 4960
Зарегистрирован: 19 дек 2012, 15:49
Откуда: Москва
Репутация: 771

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

Сообщение UAVpilot » 09 апр 2019, 17:55

Nick писал(а):Что собственно ниочем...

Да, нужен график загрузки сетевого интерфейса - только так можно будет увидеть "полку", если она есть и по её уровню попробовать понять причину.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 18932
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 4593
Медальки:
Настоящее имя: Сергей

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

Сообщение Perlovka » 09 апр 2019, 18:06

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

Зачем? Судя по видео, там 30 kbps на 100 запросов, 0.6 мбит. О какой загрузке идет речь?

Я бы смотрел на disk I/O.
Аватара пользователя
Perlovka
Новичок
 
Сообщения: 8
Зарегистрирован: 08 апр 2019, 01:24
Репутация: 0
Настоящее имя: Михаил

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

Сообщение UAVpilot » 09 апр 2019, 18:12

Perlovka писал(а):Зачем? Судя по видео, там 30 kbps на 100 запросов, 0.6 мбит. О какой загрузке идет речь?

Я ж в предыдущем посте чётко написал "загрузки сетевого интерфейса" и написал, что в основном экземляры апача висят на отдаче байтов. Спрашивается: а почему они так долго отдают? Может все эти отдаваемые байты в канал не пролазят?..
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 18932
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 4593
Медальки:
Настоящее имя: Сергей

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

Сообщение Nick » 10 апр 2019, 11:01

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

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

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

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

Сообщение SVP » 10 апр 2019, 12:12

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

А может в память они не пролазят(после каждого куска читаются с диска и ждут освобождения памяти под размещение), а может в диск(часто читаются, потому как хранить негде, кеша нет т.к. 0 пустой памяти итп).

Но проблема нифига не в этом, а в том, сколько ресурсов занимает этот процесс...
Занимал бы он не сотни мегабайт, а тысячи байт и былоб пофиг сколько файлов запросил яндекс.
SVP
Мастер
 
Сообщения: 4960
Зарегистрирован: 19 дек 2012, 15:49
Откуда: Москва
Репутация: 771

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

Сообщение Nick » 10 апр 2019, 13:16

SVP писал(а):А может в память они не пролазят(после каждого куска читаются с диска и ждут освобождения памяти под размещение), а может в диск(часто читаются, потому как хранить негде, кеша нет т.к. 0 пустой памяти итп).

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

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

Сообщение NightV » 10 апр 2019, 13:29

Nick писал(а):хрен там

насяльнике.... ты это.. того... сильно не ругайся)))
ПЫ.СЫ. у меня ниче не тормозит... разве что сам иногда :hehehe:
Всё просто! если знаешь КАК!
Аватара пользователя
NightV
Почётный участник
Почётный участник
 
Сообщения: 6497
Зарегистрирован: 30 дек 2011, 09:14
Откуда: Israel
Репутация: 2299
Медальки:
Настоящее имя: Владимир Айрапетян

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

Сообщение al_us » 10 апр 2019, 13:47

я думаю это всё изза gif файлов которые не прячут под спойлер :D
"Безумная мудрость беспощадна, ведь если вам нужна абсолютная истина, если вы хотите быть полностью и совершенно благоразумным человеком, тогда ни одно предложение о переводе того, что возникает, на ваш язык или об истолковании этого в ваших терминах не заслуживает рассмотрения."
Аватара пользователя
al_us
Мастер
 
Сообщения: 554
Зарегистрирован: 24 июн 2015, 09:27
Репутация: 114
Настоящее имя: Алексей

Пред.След.

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

Кто сейчас на конференции

Зарегистрированные пользователи: admin, agcom, Andrey_14, Antigoogle, aservise, asgard, Bing [Bot], creisey, cubot, Darxton, er931, frezeryga, Google [Bot], hmnijp, Igor1, igraka, iMaks-RS, irbis, ivekill, karavan, lkbyysq, maga_ges, mihams, mikehv, Mikhgen, Pantiak, RNDL, sas_75, SDAMASK, solo, tagpin, uralpt, verser, Vladimir52, Vovik939, X-Ray, Yandex [bot], zuvis1112

Reputation System ©'