Mailinglist Archive: opensuse (3513 mails)

< Previous Next >
[opensuse] openSUSE 11.1 x86_64 on a 512MB RAM system
  • From: Rui Santos <rsantos@xxxxxxxxxxxxx>
  • Date: Tue, 06 Jan 2009 11:16:52 +0000
  • Message-id: <49633DA4.2060401@xxxxxxxxxxxxx>
Hi all,

I've stumbled on a problem, on a test machine, using openSUSE 11.1
x86_64 system with 512MB of RAM. This test was just to confirm a friends
claim that he was unable to get a working server with that kind of hardware.

The problem is that openSUSE uses all of the memory for simple
tasks, like fsck. Just as an example, here is an strace of a fsck.vfat
on a filesystem. For this I just left the system with 90MB free memory
before I ran this command:

2090 execve("/sbin/fsck.vfat", ["fsck.vfat", "/dev/sdb1"], [/* 20 vars
*/]) = 0
2090 brk(0) = 0x60f000
2090 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
-1, 0) = 0x7f093726f000
2090 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
-1, 0) = 0x7f093726e000
2090 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or
directory)
2090 open("/etc/ld.so.cache", O_RDONLY) = 3
2090 fstat(3, {st_mode=S_IFREG|0644, st_size=32722, ...}) = 0
2090 mmap(NULL, 32722, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f0937266000
2090 close(3) = 0
2090 open("/lib64/libc.so.6", O_RDONLY) = 3
2090 read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240\346\1\0\0\0\0\0"...,
832) = 832
2090 fstat(3, {st_mode=S_IFREG|0755, st_size=1406248, ...}) = 0
2090 mmap(NULL, 3506872, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f0936cfa000
2090 fadvise64(3, 0, 3506872, POSIX_FADV_WILLNEED) = 0
2090 mprotect(0x7f0936e49000, 2097152, PROT_NONE) = 0
2090 mmap(0x7f0937049000, 20480, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x14f000) = 0x7f0937049000
2090 mmap(0x7f093704e000, 17080, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f093704e000
2090 close(3) = 0
2090 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
-1, 0) = 0x7f0937265000
2090 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
-1, 0) = 0x7f0937264000
2090 arch_prctl(ARCH_SET_FS, 0x7f09372646f0) = 0
2090 open("/dev/urandom", O_RDONLY) = 3
2090 read(3, "\25\v\205\210\266\247\351\223", 8) = 8
2090 close(3) = 0
2090 mprotect(0x7f0937049000, 16384, PROT_READ) = 0
2090 mprotect(0x60b000, 4096, PROT_READ) = 0
2090 mprotect(0x7f0937270000, 4096, PROT_READ) = 0
2090 munmap(0x7f0937266000, 32722) = 0
2090 fstat(1, {st_mode=S_IFCHR|0600, st_rdev=makedev(5, 1), ...}) = 0
2090 ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon
echo ...}) = 0
2090 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
-1, 0) = 0x7f093726d000
2090 write(1, "dosfsck 2.11, 12 Mar 2005, FAT32"..., 38) = 38
2090 open("/dev/sdb1", O_RDONLY) = 3
2090 fstat(3, {st_mode=S_IFBLK|0660, st_rdev=makedev(8, 17), ...}) = 0
2090 lseek(3, 0, SEEK_SET) = 0
2090 read(3, "\353X\220mkdosfs\0\0\2
\0\2\0\0\0\0\370\0\0?\0\377\0\0\0\0\0"..., 512) = 512
2090 lseek(3, 160039240192, SEEK_SET) = 160039240192
2090 brk(0) = 0x60f000
2090 brk(0x630000) = 0x630000
2090 read(3, "\353R\220NTFS
\0\2\10\0\0\0\0\0\0\0\370\0\0?\0\377\0?\0\0\0"..., 512) = 512
2090 lseek(3, 3072, SEEK_SET) = 3072
2090 read(3, "\353X\220mkdosfs\0\0\2
\0\2\0\0\0\0\370\0\0?\0\377\0\0\0\0\0"..., 512) = 512
2090 lseek(3, 512, SEEK_SET) = 512
2090 read(3,
"RRaA\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 512)
= 512
2090 mmap(NULL, 39055360, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f09347bb000
2090 lseek(3, 16384, SEEK_SET) = 16384
2090 read(3,
"\370\377\377\17\377\377\377\17\370\377\377\17\377\377\377\17\211\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
39053012) = 39053012
2090 mmap(NULL, 39055360, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f093227c000
2090 lseek(3, 39069696, SEEK_SET) = 39069696
2090 read(3, <unfinished ...>
2090 +++ killed by SIGKILL +++

The latest SIGKILL was generated by ooom-kill. Linux kernel kills
the process in order to get memory.
There were no programs running, as this command was issued under init 1
The system has no SWAP

If you check the final two mmap's, fsck maps 80MB of memory just to
check a simple vfat filesystem. What is this ?! 80 MB. I used to run a
full system on this, including fsck's.
As I stated, this is just an example. Numerous other programs take a
lot of memory making a system with 512MB of RAM almost unusable. Even so
with a 1GB of RAM ooo-kill is sometimes called to free up RAM.

Has anyone else noticed this ? I've googled a bit but unfortunately,
I found no one using 512MB of RAM with a 64bits System.

--
Rui Santos
http://www.ruisantos.com/

Veni, vidi, Linux!

--
To unsubscribe, e-mail: opensuse+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse+help@xxxxxxxxxxxx

< Previous Next >