* RH30: Virtual Mem shot heavily by locale-archive...
@ 2005-09-30 13:01 Arijit Das
2005-09-30 13:42 ` Alan Cox
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Arijit Das @ 2005-09-30 13:01 UTC (permalink / raw)
To: linux-kernel
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>
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: RH30: Virtual Mem shot heavily by locale-archive...
2005-09-30 13:01 RH30: Virtual Mem shot heavily by locale-archive Arijit Das
@ 2005-09-30 13:42 ` Alan Cox
2005-09-30 14:11 ` linux-os (Dick Johnson)
2005-09-30 15:20 ` Brian Gerst
2 siblings, 0 replies; 6+ messages in thread
From: Alan Cox @ 2005-09-30 13:42 UTC (permalink / raw)
To: Arijit Das; +Cc: linux-kernel
> 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.
There is no RH 3.0 for AMD64 - if you mean RHEL 3 then the mappings are
shared between processes.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: RH30: Virtual Mem shot heavily by locale-archive...
2005-09-30 13:01 RH30: Virtual Mem shot heavily by locale-archive Arijit Das
2005-09-30 13:42 ` Alan Cox
@ 2005-09-30 14:11 ` linux-os (Dick Johnson)
2005-09-30 15:20 ` Brian Gerst
2 siblings, 0 replies; 6+ messages in thread
From: linux-os (Dick Johnson) @ 2005-09-30 14:11 UTC (permalink / raw)
To: Arijit Das; +Cc: Linux kernel
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 DeliveryErrors@analogic.com - and destroy all copies of this information, including any attachments, without reading or disclosing them.
Thank you.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: RH30: Virtual Mem shot heavily by locale-archive...
2005-09-30 13:01 RH30: Virtual Mem shot heavily by locale-archive Arijit Das
2005-09-30 13:42 ` Alan Cox
2005-09-30 14:11 ` linux-os (Dick Johnson)
@ 2005-09-30 15:20 ` Brian Gerst
2 siblings, 0 replies; 6+ messages in thread
From: Brian Gerst @ 2005-09-30 15:20 UTC (permalink / raw)
To: Arijit Das; +Cc: linux-kernel
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
>
Only the pages of the file that are actually accessed are loaded into
physical memory. This mapping just reserves a slot of virtual memory
for those demand loaded pages to be mapped.
> 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.
Private mapping means copy-on-write. But since these mappings are
read-only they will still be shared by other users of that file. So no
extra physical memory for each process mapping the file.
--
Brian Gerst
^ permalink raw reply [flat|nested] 6+ messages in thread
* RE: RH30: Virtual Mem shot heavily by locale-archive...
@ 2005-10-01 9:19 Arijit Das
2005-10-01 9:35 ` Arjan van de Ven
0 siblings, 1 reply; 6+ messages in thread
From: Arijit Das @ 2005-10-01 9:19 UTC (permalink / raw)
To: Alan Cox, Arijit Das; +Cc: linux-kernel
Shared mappings are represented in /proc/<pid>/maps file as having 's'
as its last permission field like r-xs (shared readable and executable
region)
But in this case, the perm bits are r--p which says that it is private
rather than shared. Any idea whatz happening here...?
-Arijit
-----Original Message-----
From: Alan Cox [mailto:alan@lxorguk.ukuu.org.uk]
Sent: Friday, September 30, 2005 7:13 PM
To: Arijit Das
Cc: linux-kernel@vger.kernel.org
Subject: Re: RH30: Virtual Mem shot heavily by locale-archive...
> 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.
There is no RH 3.0 for AMD64 - if you mean RHEL 3 then the mappings are
shared between processes.
^ permalink raw reply [flat|nested] 6+ messages in thread
* RE: RH30: Virtual Mem shot heavily by locale-archive...
2005-10-01 9:19 Arijit Das
@ 2005-10-01 9:35 ` Arjan van de Ven
0 siblings, 0 replies; 6+ messages in thread
From: Arjan van de Ven @ 2005-10-01 9:35 UTC (permalink / raw)
To: Arijit Das; +Cc: Alan Cox, linux-kernel
On Sat, 2005-10-01 at 14:49 +0530, Arijit Das wrote:
> Shared mappings are represented in /proc/<pid>/maps file as having 's'
> as its last permission field like r-xs (shared readable and executable
> region)
>
> But in this case, the perm bits are r--p which says that it is private
> rather than shared. Any idea whatz happening here...?
what is the problem??????
private mappings don't take up "extra" memory *unless you write to them*
due to copy-on-write behavior of the kernel. r--p means you can't
write.... so what's the problem..
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2005-10-01 9:35 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-09-30 13:01 RH30: Virtual Mem shot heavily by locale-archive Arijit Das
2005-09-30 13:42 ` Alan Cox
2005-09-30 14:11 ` linux-os (Dick Johnson)
2005-09-30 15:20 ` Brian Gerst
-- strict thread matches above, loose matches on Subject: below --
2005-10-01 9:19 Arijit Das
2005-10-01 9:35 ` Arjan van de Ven
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.