Думаю, вы не совсем поняли сочетание «PHP CLI» в названии топика.
1. Основной плюс PHP CLI — работа с объектами (моделями) уже описанные в самом проекте, без написания уже существующего функционала, следовательно экономим время на разработке.
2. Bash врядли сможет легко манипулировать данными как в базе, так и в nosql демонах (memcached/mongo/redis). А вызов system в php cli зачастую необходим только для того, чтобы сделать ротацию логов, сделать ресайз нескольких фотографий, ну и удалить какой-то мусор.
Кстати, после того, как код был уже написан и прошли набитые шишки, из недр гугла удалось достать библиотеку (phpsocketdaemon), которая имеет очень положительные отзывы в плане работы с памятью.
Может кому пригодиться, а может у кого уже был опыт использования?
Я сам эту проблему заметил не сразу, после активной работы демона в течение месяца увидел, что тот отъел порядка 100 лишних мб памяти.
Тут же был написан брут-скрипт, который в 3х запущенных вариантах набирал на сервере порядка 500 лишних мб за 5 минут, вот и висит вопрос с тех пор :)
Отличная статья, в свое время тоже до всего доходил самостоятельно.
Хотелось бы коснуться темы сокетов — был опыт работы с ними? Вы пишите, что перед fork'ами надо все ресурсы закрывать, что невозможно сделать когда, например, у нас есть сервер, который всегда ждет входных данных на свой порт, а все полученные запросы к нему раскидывает по дочерним воркерам.
Как показали эксперименты, связка socket_create/socket_bind очень сильно ела память, стал использовать stream_socket_server, память течет значительно меньше, но течет. Помогают перезапуски сервера. Как я выявил, проблема в закрытии ресурса после вызова stream_socket_accept из сервера-родителя.
Очень жаль, удалось почитать их именно в этот последний год.
Стал более серьезно относиться (так как в принципе узнал, что это такое) к военному вооружению нашей страны и его истории, прильнул к любителям почитать Голубицкого. Новости были не только о вебе, но и об IT вцелом, что расширяло кругозор.
Жаль, очень жаль.
1. Основной плюс PHP CLI — работа с объектами (моделями) уже описанные в самом проекте, без написания уже существующего функционала, следовательно экономим время на разработке.
2. Bash врядли сможет легко манипулировать данными как в базе, так и в nosql демонах (memcached/mongo/redis). А вызов system в php cli зачастую необходим только для того, чтобы сделать ротацию логов, сделать ресайз нескольких фотографий, ну и удалить какой-то мусор.
Может кому пригодиться, а может у кого уже был опыт использования?
Я сам эту проблему заметил не сразу, после активной работы демона в течение месяца увидел, что тот отъел порядка 100 лишних мб памяти.
Тут же был написан брут-скрипт, который в 3х запущенных вариантах набирал на сервере порядка 500 лишних мб за 5 минут, вот и висит вопрос с тех пор :)
Хотелось бы коснуться темы сокетов — был опыт работы с ними? Вы пишите, что перед fork'ами надо все ресурсы закрывать, что невозможно сделать когда, например, у нас есть сервер, который всегда ждет входных данных на свой порт, а все полученные запросы к нему раскидывает по дочерним воркерам.
Как показали эксперименты, связка
socket_create/socket_bind
очень сильно ела память, стал использоватьstream_socket_server
, память течет значительно меньше, но течет. Помогают перезапуски сервера. Как я выявил, проблема в закрытии ресурса после вызова stream_socket_accept из сервера-родителя.Был ли такой опыт и как вы это бороли? :)
Стал более серьезно относиться (так как в принципе узнал, что это такое) к военному вооружению нашей страны и его истории, прильнул к любителям почитать Голубицкого. Новости были не только о вебе, но и об IT вцелом, что расширяло кругозор.
Жаль, очень жаль.
Официальный представитель ICQ в России — Rambler.
А в условиях текущей войны за рекламные бюджеты у вас самый здравый взгляд.