On Fri, 30 Sep 2005, Arijit Das wrote:
> I have RH3.0 installed in an AMD64 machine.
>
> In this system, when I look at the virtual address space mappings of a process (say a sleep process), I find that almost 80% of its virtual address space has been taken by a private copy of /usr/lib/locale/locale-archive mapped to its virtual address space by default. Check this:
>
> 31396 KB r--p /usr/lib/locale/locale-archive
>
> Total Virtual Memory = 38816 KB
> On the other hand, when I look at the same info in a RH7.2 system, I see that a few small set of essential locale files have been mapped whose overall summed up size is around 236KB (way smaller than RH3.0)...Check this:
> 4 r--p /usr/lib/locale/en_US/LC_IDENTIFICATION
> 4 r--p /usr/lib/locale/en_US/LC_MEASUREMENT
> 4 r--p /usr/lib/locale/en_US/LC_TELEPHONE
> 4 r--p /usr/lib/locale/en_US/LC_ADDRESS
> 4 r--p /usr/lib/locale/en_US/LC_NAME
> 4 r--p /usr/lib/locale/en_US/LC_PAPER
> 4 r--p /usr/lib/locale/en_US/LC_MESSAGES/SYS_LC_MESSAGES
> 4 r--p /usr/lib/locale/en_US/LC_MONETARY
> 24 r--p /usr/lib/locale/en_US/LC_COLLATE
> 4 r--p /usr/lib/locale/en_US/LC_TIME
> 4 r--p /usr/lib/locale/en_US/LC_NUMERIC
> 172 r--p /usr/lib/locale/en_US/LC_CTYPE
> This seems like a huge requirement of memory for each small process executed in the RH3.0 system and hence, shots up the memory requirement of the entire system because the mapped region /usr/lib/locale/locale-archive is privately mapped.
>
> Question:
> 1) Is there any way by which I can instruct my RH3.0 system not to map the huge locale-archive file by default? Rather it should map the few small set of locale files, as mapped in RH7.2 system.
> 2) If the answer of my previous question is yes (it is possible), then what will be the impact of doing that?
>
> You can find the sample "sleep" commands below.
>
> Thanks,
> Arijit
>
> RH3.0 on AMD64:
> =============
> vgamd126:arijit>sleep 400 &
> [1] 19916
> vgamd126:arijit>pmap 19916
> Size (KB) Perm Associated files (if any)
> ========== ==== =============================================
> 16 r-xp /bin/sleep
> 4 rw-p /bin/sleep
> 132 rwxp
> 1108 r-xp /lib64/ld-2.3.2.so
> 4 rw-p /lib64/ld-2.3.2.so
> 4 rw-p
> 540 r-xp /lib64/tls/libm-2.3.2.so
> 1024 ---p /lib64/tls/libm-2.3.2.so
> 4 rw-p /lib64/tls/libm-2.3.2.so
> 4 rw-p
> 36 r-xp /lib64/tls/librtkaio-2.3.2.so
> 1024 ---p /lib64/tls/librtkaio-2.3.2.so
> 4 rw-p /lib64/tls/librtkaio-2.3.2.so
> 64 rw-p
> 1260 r-xp /lib64/tls/libc-2.3.2.so
> 1024 ---p /lib64/tls/libc-2.3.2.so
> 20 rw-p /lib64/tls/libc-2.3.2.so
> 16 rw-p
> 60 r-xp /lib64/tls/libpthread-0.60.so
> 1024 ---p /lib64/tls/libpthread-0.60.so
> 4 rw-p /lib64/tls/libpthread-0.60.so
> 20 rw-p
> 31396 r--p /usr/lib/locale/locale-archive
> 24 rw-p
> Total Virtual Memory = 38816 KB
> vgamd126:arijit>
>
>
> RH7.2 in i686
> ==========
> eurika120:arijit>sleep 400 &
> [1] 11065
> eurika120:arijit>pmap 11065
> Size (KB) Perm Associated files (if any)
> ========== ==== =============================================
> 12 r-xp /bin/sleep
> 4 rw-p /bin/sleep
> 8 rwxp
> 88 r-xp /lib/ld-2.2.4.so
> 4 rw-p /lib/ld-2.2.4.so
> 4 r--p /usr/lib/locale/en_US/LC_IDENTIFICATION
> 4 r--p /usr/lib/locale/en_US/LC_MEASUREMENT
> 4 r--p /usr/lib/locale/en_US/LC_TELEPHONE
> 4 r--p /usr/lib/locale/en_US/LC_ADDRESS
> 4 r--p /usr/lib/locale/en_US/LC_NAME
> 4 r--p /usr/lib/locale/en_US/LC_PAPER
> 4 r--p /usr/lib/locale/en_US/LC_MESSAGES/SYS_LC_MESSAGES
> 4 r--p /usr/lib/locale/en_US/LC_MONETARY
> 24 r--p /usr/lib/locale/en_US/LC_COLLATE
> 4 r--p /usr/lib/locale/en_US/LC_TIME
> 4 r--p /usr/lib/locale/en_US/LC_NUMERIC
> 4 rw-p
> 136 r-xp /lib/i686/libm-2.2.4.so
> 4 rw-p /lib/i686/libm-2.2.4.so
> 28 r-xp /lib/librt-2.2.4.so
> 4 rw-p /lib/librt-2.2.4.so
> 40 rw-p
> 1224 r-xp /lib/i686/libc-2.2.4.so
> 20 rw-p /lib/i686/libc-2.2.4.so
> 16 rw-p
> 52 r-xp /lib/i686/libpthread-0.9.so
> 32 rw-p /lib/i686/libpthread-0.9.so
> 172 r--p /usr/lib/locale/en_US/LC_CTYPE
> 24 rwxp
> Total Virtual Memory = 1936 KB
> eurika120:arijit>
>
Those private mappings are much smaller than the whole shared
libraries. They are probably gap-fillers because the libraries
don't end on page boundaries and mapping is per-page. The
gap-fillers shown as "---p" will have PROT_NONE attributes
and therefore can't be read/written/exec, etc. In other words,
it's perfectly normal and you wouldn't want to do anything about it.
Cheers,
Dick Johnson
Penguin : Linux version 2.6.13 on an i686 machine (5589.55 BogoMips).
Warning : 98.36% of all statistics are fiction.
****************************************************************
The information transmitted in this message is confidential and may be privileged. Any review, retransmission, dissemination, or other use of this information by persons or entities other than the intended recipient is prohibited. If you are not the intended recipient, please notify Analogic Corporation immediately - by replying to this message or by sending an email to [email protected] - and destroy all copies of this information, including any attachments, without reading or disclosing them.
Thank you.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
|
|