On Tuesday 24 February 2015 09:21:58 Nick Kostirya wrote:
> Привет всем. Вопрос по использованию памяти при fork.
> 
> Есть у меня perl приложение, которое создает дочерние рабочие процессы.
> Родительский процесс постоянно дает дочерним задания, дочерние отправляют
> ответы в главный. Количество дочерних процессов постоянно.
> 
> В дочерних процессах кроме perl кода исполняется C код: парсер html
> страничек и Curl (если используется).
> 
> Приложение может использовать в качестве HTTP клиента: LWP, Curl,
> AnyEvent::HTTP.
> 
> Сколько памяти занимает приложение смотрел по количеству свободной памяти
> перед завершение дочерних процессов. Эти значение представлены ниже для
> разного количество рабочих процессов (0 - это когда без fork, все работа в
> главном идет).
> 
> 
>               LWP                Curl          AnyEvent::HTTP
>        FreeBSD     Linix   FreeBSD   Linix   FreeBSD        Linix
>  0      15         17       20        17       38           20
>  1      23         26       35        20       47           25
>  2      33         38       50        25       62           33
>  3      43         51       64        30       80           40
>  4      53         65       76        34       93           47
>  5      61         78       84        37      109           55
>  6      67         89       98        42      119           62
>  7      75        103      105        45      126           69
>  8      85        116      115        50      146           76
>  9      93        126      122        52      153           83
> 10     103        136      130        57      166           91
> 
> Удивило сравнение с Linux.
> 
> Как можно это объяснить и что можно подкрутить?


 Обьяснить можно тем, что FreeBSD с бОльшей вероятностью оставит в оперативной 
пвмяти те куски кода и данные, которые могут понадобиться вновь.

Ответить