>>Здравствуйте! У меня возникла такая ситуация:
>>
>>Есть скрипт, который отдает файлы через php порциями по 8 байт, докачка
>>и многопоточность не работают. Скрипт писался таким образом, чтобы минимизировать количество
>>запущенных процессов Apache.
>
>а чо уж не по 1 байту отдавать? в 8 раз больше
>пакетов можно сгенерить ))) Я ошибся - 8 Килобайт на самом деле.
Где-то прочитал что это оптимальный вариант.
>[оверквотинг удален]
>>успокаивается и продолжает качать в один поток.
>>
>>Но есть особо наглые качалки, которые продолжают ломиться по ссылке, пытаясь начать
>>закачку другими потоками. И это происходит все время, пока юзер качает
>>файл (в один поток).
>>
>>В результате - запускается множество процессов Apache. А памяти много не бывает,
>>и Apache виснет.
>
>а по фтп не пробовал раздавать? помогает!
А про контролируемую раздачу слышал? Это когда определенные файлы могут скачивать только определенные юзеры и статистика скачиваний заносится в базу.
>>Один такой процесс с php занимает около 40 мегабайт памяти (спасибо Bitrix).
>
>процесс занимает памяти гораздо меньше - shared libraries так сказать
Really? А top и ps меня обманывают что ли (поле RES)?
>>
>>Хочется сделать так, чтобы Апаче проверял не выполняется ли уже данный скрипт
>>юзером в данный момент, и блокировал доступ потокам качалок, не дергая
>>при этом PHP-движок.
>
>сам то понял чо сморозил?
Разумеется. Даже натыкался на патчик для Апаче, который разрешал только N одновременных запросов с 1 IP. Но там нельзя было выбирать конкретный скрипт.
>>
>>Пожалуйста, помогите кто-нибудь решить данную проблему. Заранее, спасибо!
>
>open mind for a different view, and nothing else matter ...
Сейчас установил nginx, что позволило сильно разгрузить сервер. А вот с отдачей файлов буду, видимо, разбираться по другому: буду использовать симофоры по ip адресу и в случае срабатывания триггера, буду давать отлуп с текстом "Вы в данный момент качаете файл", а не начинать отдачу с начала файла (как сейчас).
Кстати, при анализе скрипта выяснилось что он помимо прочего еще и запрашивает инфу с другого сервера (очень медленного) через xml-rpc, что отрицательно сказывается на производительности.