Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options

Re^2: Multithreaded Script CPU Usage

by Zenshai (Sexton)
on Aug 25, 2008 at 15:19 UTC ( #706703=note: print w/replies, xml ) Need Help??

in reply to Re: Multithreaded Script CPU Usage
in thread Multithreaded Script CPU Usage

Updated OP with the version info.

As for your #3 I think the answer is no, but I cant seem find where to set that in

Would changing 'use threads;' to
use threads ( 'stack_size' => 64*4096, );
in be the way to set the stack size? if so, whats a 'small' value?

Replies are listed 'Best First'.
Re^3: Multithreaded Script CPU Usage
by renodino (Curate) on Aug 25, 2008 at 17:21 UTC
    Your "use threads" should do the trick, or any of the alternatives described in the "THREAD STACK SIZE" section of the threads POD...just do it as early as possible. I'd suggest that 64 * 4096 is probably a lot more than you need, as Perl has its own notion of a runtime stack, and in reality doesn't use that much process/thread stack (unless you're using very large/complex regexes, and even that issue goes away in 5.10). Note that once stack size is set, its set for all the threads/modules, so you don't need to do anything in Thread::Pool.

    Also keep in mind that each thread has its own Perl interpretter, so memory size may be an unavoidable issue, esp if the threads are spawned from another thread that already has a lot of context (due to the interpretter cloning).

    I just realized your issue has 2 parts: memory and CPU; note that my comments thus far have been entirely about the memory issue. However, given the size of the Perl process, might the CPU issue be related to paging/swapping ?

    Perl Contrarian & SQL fanboy
      Re your update:
      Thats interesting, you might be right. This box has 2GB ram, so I didn't think I was in danger of running out... Unless WinServer2k3 decided to page/swap even when there is memory available... How would I check this?

      The reason I think you're right is that my kernel times tend to be rather high when running this script. Here's an example.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://706703]
[LanX]: LOL I google for escaping POD commands and get hits for escape pods
[choroba]: Programming is dangerous.

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (5)
As of 2018-03-24 12:20 GMT
Find Nodes?
    Voting Booth?
    When I think of a mole I think of:

    Results (298 votes). Check out past polls.