Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Re^4: System call doesn't work when there is a large amount of data in a hash

by Corion (Patriarch)
on Apr 29, 2020 at 10:58 UTC ( [id://11116193]=note: print w/replies, xml ) Need Help??


in reply to Re^3: System call doesn't work when there is a large amount of data in a hash
in thread System call doesn't work when there is a large amount of data in a hash

Without seeing your code, it will be very hard to suggest things on how to make it do what you want.

You have discarded all the obvious things that would make it easier, because you say that you really need this.

Ideally, you show us some minimal code that reproduces the problem so that we can run it ourselves. For example, the following could be a start:

#!perl use strict; use warnings; my $memory_eaten = 8 * 1024 * 1024 * 1024; # 8GB, adjust to fit my %memory_eater = ( foo => scalar( " " x $memory_eaten ), ); my $cmd = "foo bar"; system($cmd) == 0 or die "Couldn't launch '$cmd': $!/$?";

Updated: Actually make the hash eat memory by creating a loong string

  • Comment on Re^4: System call doesn't work when there is a large amount of data in a hash
  • Download Code

Replies are listed 'Best First'.
Re^5: System call doesn't work when there is a large amount of data in a hash
by Nicolasd (Acolyte) on Apr 29, 2020 at 15:00 UTC

    Thanks For this suggestion, it helped a lot!

    I tried this script and it worked fine on my laptop, put 12 GB of the 16 GB available in hash and system call still works

    I did got varying results on the Centos 7 (450 GB of RAM), I monitored it also with top, if I saw a memory increase

    20 GB, 50 GB, 100 GB, 150 GB and 200 GB all worked fine, didn't see any memory increase either

    But with 230 GB (more than half of the available) I ran out of memory (Cannot allocate memory), so I need the same amount of memory free than there is in the hash? And only for Centos then?

    I also made the system call loop for 10 times and the bigger the hash, the slower the system call starts

Re^5: System call doesn't work when there is a large amount of data in a hash
by Nicolasd (Acolyte) on Apr 29, 2020 at 11:21 UTC
    Hi,

    Thanks for the reply.The big hash is the most essential part, so really can't change that.

    I didn't add any code because I tried many different system calls on different locations in the large script. A system call always worked if I put it before the hash is loaded, if I do it afterwards, it never starts

    The code you send, does that hash takes the memory of your variable $memory_eaten? If so, that would be great to test, I will do it now.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11116193]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others about the Monastery: (4)
As of 2024-04-23 07:29 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found