Modern Linux doesn't actually map stack space into real memory unless the
thread accesses the virtual memory addresses on demand.  I presume it's the
same for Windows.  Garrett Smith pointed this out to me when I made the
same claim at the Chicago meetup a couple years ago.

-Michel

On Thu, Dec 18, 2014 at 8:16 AM, Thomas Rodgers <rodg...@twrodgers.com>
wrote:
>
> The biggest problem with 280, mostly idle, threads would be the amount of
> stack space the OS is required to reserve (1MB for Windows/2MB for Linux).
> On a 64bit host this is unlikely to be much of an issue.
>
> On Mon, Dec 15, 2014 at 6:11 AM, Pieter Hintjens <p...@imatix.com> wrote:
>>
>> 280 threads sounds fine unless you have data showing that it's a
>> problem. That's easy to test on your target platform.
>>
>> On Sun, Dec 14, 2014 at 7:54 AM, Bob Clarke <optiongu...@gmail.com>
>> wrote:
>> > Platform: 0MQ 4.0.4 on Windows 7/Windows Server 2008
>> >
>> > I am writing a server monitoring program to replace an ancient (1999)
>> > program that is almost impossible to maintain.
>> >
>> > All of our application servers host proprietary Windows services
>> written in
>> > C++ (except for a couple .Net apps) that use a proprietary synchronous
>> > request/response system (it works very well, has been for many years,
>> and
>> > isn't being replaced any time soon).
>> >
>> > The monitoring program sends test scripts to the server apps and waits
>> for a
>> > reply. In most cases, the reply is almost immediate, but in some cases,
>> > there could be a delay of up to 30 seconds. So, to avoid one script
>> causing
>> > delays with others, each test script runs in its own thread. This thread
>> > must send its results back to a listener, so it creates and uses a 0MQ
>> > socket to do so. Each test script has a repeat interval; some are run
>> every
>> > five seconds, but most are run every 45 seconds, 90 seconds, or less
>> > frequently.
>> >
>> > There are about 280 test scripts (we have thousands of servers across
>> three
>> > data centers), so I seem to have two unfortunate choices:
>> > 1) Keep the script threads around so I'm not creating and destroying a
>> > socket each time a test runs;
>> > 2) Let the script threads terminate so I am not keeping 280 threads
>> open at
>> > once. Since the script repeat intervals are quite long in computer
>> terms,
>> > these threads will spend most of their time do nothing.
>> >
>> > I lean towards the first option, but opening and closing sockets that
>> often
>> > doesn't sound good. Then again, keeping 280+ threads around doesn't
>> sound so
>> > great, either.
>> >
>> > So before I go too far down this development road, does anyone have some
>> > experience they could share?
>> >
>> > Thanks.
>> >
>> > Bob
>> >
>> >
>> > _______________________________________________
>> > zeromq-dev mailing list
>> > zeromq-dev@lists.zeromq.org
>> > http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>> >
>> _______________________________________________
>> zeromq-dev mailing list
>> zeromq-dev@lists.zeromq.org
>> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>>
>
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev@lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>
>
_______________________________________________
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to