powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / CURL php - подвисает
13 сообщений из 13, страница 1 из 1
CURL php - подвисает
    #38441617
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вообщем говоря - работает код.
1)от пользователя принимает файл
2)с помощью сурла разбитый файл на несколько частей сохраняет на других нодах
3)делает отметки в базе данных, конец.

сделал тестовый скрпт, который в цикле файл один просает на эту же ноду.

итого получаем
1 - на виндоус машине под nginx+php-fpm поднято 4 виртуальные ноды. запуск на двух - нормальная одновременная работа. на трёх уже виснет всё, и все файлы не будут сохранены.
2 - на юникс сервере(nginx+php-fpm) поднята одна нода, запуск одновременый нескольких копий тестового скрипта приводит ктому что каждая копия отрабатывает, только когда предыдущая копия завершила работу

----
раньше даже две копии не могли работать - проблему подвисании нашол--- логи, точнее открытие файла на запись логов и процесы подвисали

----
а теперь не знаю уже куда копать - почему всё подвисает. Ничего специфичного больше не используеться.


может кто сталкивался с цурлом с такой же ситуацией, что скрипты плохо работают одновременно.

ЗЫ
цурл ваще ращитан, что может быть запущено 50 копий скрипта, и каждая будет цурлом лить файл на одну и туже ноду?
...
Рейтинг: 0 / 0
CURL php - подвисает
    #38441619
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ваш поток сознания отладке не поддается.
...
Рейтинг: 0 / 0
CURL php - подвисает
    #38441622
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"зависает" в php имеет весьма определенный смысл. выяснить который могут отладчик и drace
...
Рейтинг: 0 / 0
CURL php - подвисает
    #38441623
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторdrace
dtrace
...
Рейтинг: 0 / 0
CURL php - подвисает
    #38441700
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex564657498765453каждая копия отрабатывает, только когда предыдущая копия завершила работуСлучаем, сессии не используются?
...
Рейтинг: 0 / 0
CURL php - подвисает
    #38441751
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkle,

:)используються.

это изза сесий? а можно както отключить.

ЗЫ
сайт естесвенно через сесию хранит логин пользователя, но тест пользуеться автологином(среди прочих параметров запроса присутсвует юзер-пасворд) - хотя этот автологин реализован стандартно через клас аус, которые через сесии работает.
...
Рейтинг: 0 / 0
CURL php - подвисает
    #38441757
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkle,

вообщем ты хочешь сказать, что цурл видя в кукисах сесию не будет паралельно открывать два соединения на один и тотже адресс?

тогда понятно почему запросы в очередь выстраиваються если запускать много копий теста на одной ноде.

Непонятно всёравно почему все наглухо виснет и все сурл запросы получают таймауты, если запустить тесты по одному на ноду, но все ноды -виртуальные хосты на одной машине
...
Рейтинг: 0 / 0
CURL php - подвисает
    #38441767
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДЛЯ ВСЕХ - БОЛЕЕ ДЕТАЛЬНОЕ ОПИСАНИЕ


КАК СОХРАНЯЕТЬСЯ ПОЛЬЗОВАТЕЛЬСКИЙ ФАЙЛ

приняли файл, разбили на части, потом по одной(части) закидываем на нужную ноду(используя цурл, метод=пост - сдесь нету логина, ноды между собой свой метод проверки прав доступа используют. не связано не с куками ни с сесиями)

ТЕСТ
определяем урл адресс текущей ноды(где запустился тест) - и на этот адрес имитируя юзера с помощью цурла бросаем файл в цикле, давая ему рандомное имя(ну чтоб файлы разные получались)

и того получаем использование цурла
если ноды всего 4

1)на каждой ноде один процес в цикле сурлом конектиться к себеже(код теста).
2)на каждый конект по п.1 - приходиться по очереди конекты на остальные ноды (раскидывание частей файлов) - раз уж про сесии заговорили, при конекте по типу 2 обработка запроса очень простая - проверка что это наша надо, и просто переместить файл.

ЗЫ автостарта сесий нету. сесия стартуеться, когда загружаеться класс авторизации.
при запросе по типу 1, естественно ищем залогиненого юзера(чтоб в базе отметить чей файл будет)
при запросе типа 2 авторизация не нужна совсем.
...
Рейтинг: 0 / 0
CURL php - подвисает
    #38441863
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex564657498765453vkle,

вообщем ты хочешь сказать, что цурл видя в кукисах сесию не будет паралельно открывать два соединения на один и тотже адресс?Все проще и курл тут ни при чем. Серверный скрипт не откроет сессию для второго соединения пока первое не освободит сессию.
...
Рейтинг: 0 / 0
CURL php - подвисает
    #38443498
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkle,

Так это то и странно.
при тесте на локалхосте(где 4 ноды поднято)

1)процес сохранения файла на ноду другую - это просто копирование файла(это на продакшине через цурл заброс)

2)итого сурл, это только тестовый код обращаеться к томуже домену где его запустили в цикле, пытаясь загружать файл.

и что странно, я поставил логирование айди сесии текущие - они разные :)

тоесть

1)стартует тестовый код - айдисессии1 - совпадает с айдишником в оборевателе(в кукисах)
2)первая итерация тестового кода запустила обработчик принятия файла от юзера. код обработчика щитает что текущая сесия2
3)вторая итерация тестового кода запускает ..тоже самое..но айди сесии - сесия3(тобишь другая)

и вот в толк не возьму.

ИТОГО
почему две копии тестового кода на одной ноде не выполнялись одновременно - изза сесий, это ясно.
...
Рейтинг: 0 / 0
CURL php - подвисает
    #38444081
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вообщем взял упростил.

test_load.php в цикле обращаеться на 'http://'.$_SERVER['HTTP_HOST'].'/answer.php';
посредством КУРЛ
(никаких класов сесий - ничего - цикл и в цикле обращение(никакие файлы даже не передаём)

answer.php просто выдаёт строку текста - ответ=тукущее_время

Результат тотже.
запуск такого теста сразу на трёх виртуальных хостах и всё виснет. И не понятно почему.
заставляя логировать ошибки nginx -смог добиться токо строки, о том что фаст-цги не ответил вовремя, вышло время типо(таймаут).

ЗЫ
это точно что скрипты не работают с файлами, базой, нету сесий, нету потоков.

точно дело в сервере, а как понять чего ему не хватает. ???
...
Рейтинг: 0 / 0
CURL php - подвисает
    #38444090
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex564657498765453,
и кстате в момент подвисания - ниодин файл пхп не запускаеться на сервере.
а саттику(тхт файл например) отдаёт.

Я так понимаю фастцги накрываеться - а как понять почему?
...
Рейтинг: 0 / 0
CURL php - подвисает
    #38444114
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex564657498765453заставляя логировать ошибки nginx -смог добиться токо строки, о том что фаст-цги не ответил вовремя, вышло время типо(таймаут).Вот это уже кое-что. Так понимаю, там должен php-скрипт исполняться. Возможно, есть смысл для тестирования подменить статичным конетнтом (без пхпшных тегов) в php-файле и попытаться воспроизвести ошибку. Если ошибок не будет - дальше вероятно построчно отлаживать скрипт. А если ошибки будут вылазить по прежнему - тут смотреть пристально на сам фастцги (хотя, можно попробовать и сразу в его настройки глянуть - мож в какие-то ограничения уперлись).
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / CURL php - подвисает
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]