Как оказалось, что эти цифры выкинуть на свалку.
Понял это, когда решил повышать количество дочерних процессов до использования 
свопа.
FreeBSD и Linux имеют немного разные стратегии использования памяти.
Например, FreeBSD говорит, что уже нет свободной, но потом достает из закромов 
еще кусочек.

Кстати, из этого всего понял, что COW - это больше скорость fork, чем снижение 
количество потребления памяти. Раньше думал, что памяти больше экономит. Хотя 
50% тоже не мало.


P.S.
Самого Curl 7.33 и 7.39 версии сильно отличаются по потреблению памяти.


On Tue, 24 Feb 2015 09:21:58 +0200
Nick Kostirya <[email protected]> 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.
> 
> Как можно это объяснить и что можно подкрутить?
> 
> 
> P.S. OS обе 32 под KVM. Размер страниц одинаков.
> 
> FreeBSD 9.3
> Perl v5.18.4
> curl 7.39.0, Features: AsynchDNS IPv6 Largefile GSS-API SPNEGO NTLM NTLM_WB 
> SSL libz
> 
> linux 3.16
> Perl v5.14.2
> curl 7.33.0 Features: AsynchDNS GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB 
> SSL libz TLS-SRP
> 
> Грешил на версию perl, но потом и на Linux использовал Perl v5.18.4. Цифры 
> увеличились, но в целом картина не поменялась:
> 
> Linux
>           Perl v5.14.2    Perl v5.18.4
> Curl 6 6      43               46
> AE   6 6      63               71
> 
> (6 6 - это 6 fork, в каждом из которых по 6 IO)
>   

Ответить