Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
CURL php - подвисает
|
|||
|---|---|---|---|
|
#18+
вообщем говоря - работает код. 1)от пользователя принимает файл 2)с помощью сурла разбитый файл на несколько частей сохраняет на других нодах 3)делает отметки в базе данных, конец. сделал тестовый скрпт, который в цикле файл один просает на эту же ноду. итого получаем 1 - на виндоус машине под nginx+php-fpm поднято 4 виртуальные ноды. запуск на двух - нормальная одновременная работа. на трёх уже виснет всё, и все файлы не будут сохранены. 2 - на юникс сервере(nginx+php-fpm) поднята одна нода, запуск одновременый нескольких копий тестового скрипта приводит ктому что каждая копия отрабатывает, только когда предыдущая копия завершила работу ---- раньше даже две копии не могли работать - проблему подвисании нашол--- логи, точнее открытие файла на запись логов и процесы подвисали ---- а теперь не знаю уже куда копать - почему всё подвисает. Ничего специфичного больше не используеться. может кто сталкивался с цурлом с такой же ситуацией, что скрипты плохо работают одновременно. ЗЫ цурл ваще ращитан, что может быть запущено 50 копий скрипта, и каждая будет цурлом лить файл на одну и туже ноду? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2013, 16:52 |
|
||
|
CURL php - подвисает
|
|||
|---|---|---|---|
|
#18+
ваш поток сознания отладке не поддается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2013, 16:53 |
|
||
|
CURL php - подвисает
|
|||
|---|---|---|---|
|
#18+
"зависает" в php имеет весьма определенный смысл. выяснить который могут отладчик и drace ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2013, 16:54 |
|
||
|
CURL php - подвисает
|
|||
|---|---|---|---|
|
#18+
авторdrace dtrace ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2013, 16:54 |
|
||
|
CURL php - подвисает
|
|||
|---|---|---|---|
|
#18+
alex564657498765453каждая копия отрабатывает, только когда предыдущая копия завершила работуСлучаем, сессии не используются? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2013, 17:35 |
|
||
|
CURL php - подвисает
|
|||
|---|---|---|---|
|
#18+
vkle, :)используються. это изза сесий? а можно както отключить. ЗЫ сайт естесвенно через сесию хранит логин пользователя, но тест пользуеться автологином(среди прочих параметров запроса присутсвует юзер-пасворд) - хотя этот автологин реализован стандартно через клас аус, которые через сесии работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2013, 18:02 |
|
||
|
CURL php - подвисает
|
|||
|---|---|---|---|
|
#18+
vkle, вообщем ты хочешь сказать, что цурл видя в кукисах сесию не будет паралельно открывать два соединения на один и тотже адресс? тогда понятно почему запросы в очередь выстраиваються если запускать много копий теста на одной ноде. Непонятно всёравно почему все наглухо виснет и все сурл запросы получают таймауты, если запустить тесты по одному на ноду, но все ноды -виртуальные хосты на одной машине ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2013, 18:04 |
|
||
|
CURL php - подвисает
|
|||
|---|---|---|---|
|
#18+
ДЛЯ ВСЕХ - БОЛЕЕ ДЕТАЛЬНОЕ ОПИСАНИЕ КАК СОХРАНЯЕТЬСЯ ПОЛЬЗОВАТЕЛЬСКИЙ ФАЙЛ приняли файл, разбили на части, потом по одной(части) закидываем на нужную ноду(используя цурл, метод=пост - сдесь нету логина, ноды между собой свой метод проверки прав доступа используют. не связано не с куками ни с сесиями) ТЕСТ определяем урл адресс текущей ноды(где запустился тест) - и на этот адрес имитируя юзера с помощью цурла бросаем файл в цикле, давая ему рандомное имя(ну чтоб файлы разные получались) и того получаем использование цурла если ноды всего 4 1)на каждой ноде один процес в цикле сурлом конектиться к себеже(код теста). 2)на каждый конект по п.1 - приходиться по очереди конекты на остальные ноды (раскидывание частей файлов) - раз уж про сесии заговорили, при конекте по типу 2 обработка запроса очень простая - проверка что это наша надо, и просто переместить файл. ЗЫ автостарта сесий нету. сесия стартуеться, когда загружаеться класс авторизации. при запросе по типу 1, естественно ищем залогиненого юзера(чтоб в базе отметить чей файл будет) при запросе типа 2 авторизация не нужна совсем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2013, 18:12 |
|
||
|
CURL php - подвисает
|
|||
|---|---|---|---|
|
#18+
alex564657498765453vkle, вообщем ты хочешь сказать, что цурл видя в кукисах сесию не будет паралельно открывать два соединения на один и тотже адресс?Все проще и курл тут ни при чем. Серверный скрипт не откроет сессию для второго соединения пока первое не освободит сессию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2013, 20:32 |
|
||
|
CURL php - подвисает
|
|||
|---|---|---|---|
|
#18+
vkle, Так это то и странно. при тесте на локалхосте(где 4 ноды поднято) 1)процес сохранения файла на ноду другую - это просто копирование файла(это на продакшине через цурл заброс) 2)итого сурл, это только тестовый код обращаеться к томуже домену где его запустили в цикле, пытаясь загружать файл. и что странно, я поставил логирование айди сесии текущие - они разные :) тоесть 1)стартует тестовый код - айдисессии1 - совпадает с айдишником в оборевателе(в кукисах) 2)первая итерация тестового кода запустила обработчик принятия файла от юзера. код обработчика щитает что текущая сесия2 3)вторая итерация тестового кода запускает ..тоже самое..но айди сесии - сесия3(тобишь другая) и вот в толк не возьму. ИТОГО почему две копии тестового кода на одной ноде не выполнялись одновременно - изза сесий, это ясно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 14:08 |
|
||
|
CURL php - подвисает
|
|||
|---|---|---|---|
|
#18+
вообщем взял упростил. test_load.php в цикле обращаеться на 'http://'.$_SERVER['HTTP_HOST'].'/answer.php'; посредством КУРЛ (никаких класов сесий - ничего - цикл и в цикле обращение(никакие файлы даже не передаём) answer.php просто выдаёт строку текста - ответ=тукущее_время Результат тотже. запуск такого теста сразу на трёх виртуальных хостах и всё виснет. И не понятно почему. заставляя логировать ошибки nginx -смог добиться токо строки, о том что фаст-цги не ответил вовремя, вышло время типо(таймаут). ЗЫ это точно что скрипты не работают с файлами, базой, нету сесий, нету потоков. точно дело в сервере, а как понять чего ему не хватает. ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 19:22 |
|
||
|
CURL php - подвисает
|
|||
|---|---|---|---|
|
#18+
alex564657498765453, и кстате в момент подвисания - ниодин файл пхп не запускаеться на сервере. а саттику(тхт файл например) отдаёт. Я так понимаю фастцги накрываеться - а как понять почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 19:31 |
|
||
|
CURL php - подвисает
|
|||
|---|---|---|---|
|
#18+
alex564657498765453заставляя логировать ошибки nginx -смог добиться токо строки, о том что фаст-цги не ответил вовремя, вышло время типо(таймаут).Вот это уже кое-что. Так понимаю, там должен php-скрипт исполняться. Возможно, есть смысл для тестирования подменить статичным конетнтом (без пхпшных тегов) в php-файле и попытаться воспроизвести ошибку. Если ошибок не будет - дальше вероятно построчно отлаживать скрипт. А если ошибки будут вылазить по прежнему - тут смотреть пристально на сам фастцги (хотя, можно попробовать и сразу в его настройки глянуть - мож в какие-то ограничения уперлись). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2013, 20:10 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=38444090&tid=1463327]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 258ms |
| total: | 397ms |

| 0 / 0 |
