netrom has asked for the wisdom of the Perl Monks concerning the following question:

Hi all

We have 2 servers both running redhat enterprise 4.7 bigsmp kernel 2.6.9 + redhat patches. one has 40GB the other have 64GB.

Same processors, mostly same config.

We have compiled perl ourselves v5.8.9, same binary on both servers.

Profiling our perl app shows that the 64GB is twice as slow regarding perl. For binary data is it around 20% slower. We mostly takes lots of strings and create a large object of them.

I'm investigating further with redhat, but I'm wondering if any of you have seen similar behaveour when it comes to 64GB.

Thanks

Replies are listed 'Best First'.
Re: perl on lagremem linux
by BrowserUk (Patriarch) on Feb 04, 2010 at 15:28 UTC

    Is the profiled Perl app actually using substantial proportions of those memory figures?


    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.
      Hi

      The perl code is not using much memory, but there is a lot of block evals and creating objects with lots of DateTime timestamps (DateTime has a horrendously large structure regarding the timezone).

      I'm in the process of making a narrowed down profiling only doing the perl part.

        My thought was that if you were random accessing a substantial part of those memories, 64 GB via 8MB secondary cache would lead to higher cache contention that 40GB via 8MB. But unless both boxes are running close to their upper limits--not just your Perl jobs; but their full workloads--that's unlikely to be the cause.

        The only other thought that comes to mind is that one machine is using (say) the pure-Perl version of something like List::Util and the other the XS version. I rememeber one install on my old machine where the XS version appeared to be installed--the proper files were in thr right places--but it was silently using the PP version anyway. I never fully understood the cause, but a forces re-install fixed it.


        Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
        "Science is about questioning the status quo. Questioning authority".
        In the absence of evidence, opinion is indistinguishable from prejudice.
Re: perl on lagremem linux
by cdarke (Prior) on Feb 04, 2010 at 16:28 UTC
    Are you using 64-bit or 32-bit with kernel-PAE (which can have performance downsides)?
      Its the full 64bit
      [root@lxwscpapp4 ~]# cat /etc/redhat-release Red Hat Enterprise Linux AS release 4 (Nahant Update 7) [root@lxwscpapp4 ~]# uname -a Linux lxwscpapp4 2.6.9-78.0.22.ELlargesmp #1 SMP Fri Apr 24 12:59:13 E +DT 2009 x86_64 x86_64 x86_64 GNU/Linux [root@lxwscpapp4 ~]# cat /proc/meminfo MemTotal: 65986620 kB MemFree: 49984384 kB Buffers: 251780 kB Cached: 15235444 kB SwapCached: 0 kB Active: 15455460 kB Inactive: 243860 kB HighTotal: 0 kB HighFree: 0 kB LowTotal: 65986620 kB LowFree: 49984384 kB SwapTotal: 1048568 kB SwapFree: 1048568 kB Dirty: 36 kB Writeback: 0 kB Mapped: 265268 kB Slab: 267256 kB CommitLimit: 34041876 kB Committed_AS: 1783772 kB PageTables: 4816 kB VmallocTotal: 536870911 kB [root@lxwscpapp4 ~]# /opt/perl/bin/perl -V Summary of my perl5 (revision 5 version 8 subversion 9) configuration: Platform: osname=linux, osvers=2.6.9-78.0.22.ellargesmp, archname=x86_64-lin +ux uname='linux lxwscpapp4 2.6.9-78.0.22.ellargesmp #1 smp fri apr 24 + 12:59:13 edt 2009 x86_64 x86_64 x86_64 gnulinux ' config_args='-Dprefix=/opt/perl -Dnoextensions=ODBM_File -des -Acc +flags=-fPIC' hint=recommended, useposix=true, d_sigaction=define usethreads=undef use5005threads=undef useithreads=undef usemultipl +icity=undef useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=define use64bitall=define uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='cc', ccflags ='-fPIC -fno-strict-aliasing -pipe -I/usr/local/i +nclude -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', optimize='-O2', cppflags='-fPIC -fno-strict-aliasing -pipe -I/usr/local/include' ccversion='', gccversion='3.4.6 20060404 (Red Hat 3.4.6-10)', gcco +sandvers='' intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=1 +6 ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', + lseeksize=8 alignbytes=8, prototype=define Linker and Libraries: ld='cc', ldflags =' -L/usr/local/lib' libpth=/usr/local/lib /lib /usr/lib /lib64 /usr/lib64 /usr/local/l +ib64 libs=-lnsl -ldl -lm -lcrypt -lutil -lc perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc libc=/lib/libc-2.3.4.so, so=so, useshrplib=false, libperl=libperl. +a gnulibc_version='2.3.4' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E' cccdlflags='-fPIC', lddlflags='-shared -O2 -L/usr/local/lib' Characteristics of this binary (from libperl): Compile-time options: PERL_MALLOC_WRAP USE_64_BIT_ALL USE_64_BIT_INT USE_FAST_STDIO USE_LARGE_FILES USE_PERLIO Built under linux Compiled at Nov 16 2009 09:21:45 @INC: /opt/perl/lib/5.8.9/x86_64-linux /opt/perl/lib/5.8.9 /opt/perl/lib/site_perl/5.8.9/x86_64-linux /opt/perl/lib/site_perl/5.8.9 . VmallocUsed: 4356 kB VmallocChunk: 536866351 kB HugePages_Total: 0 HugePages_Free: 0 Hugepagesize: 2048 kB