Linux VM tuning for production server

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Linux VM tuning for production server

Sébastien Rocca-Serra
Hi,

We develop a Squeak Seaside application which will soon go in production.

We now need to tune the Squeak VM command line options to fit our server. We did a few experiments listed bellow, but we definitely need some experimented users advice.

Context

-------

We use a 3.9-8 VM on a (32 bits) debian Sarge server with 1 GB of RAM and 2 GB of swap. We need to handle high traffic.

Command Lines We Tried

----------------------

    /var/squeak$ squeakvm -nodisplay

Squeak takes around 1 GB of VIRT memory from the start (60 MB of RES).

A simple stress test (just display a Seaside page) with 4 transactions per seconds (trans/s) freezes squeak in seconds (we can't access it anymore and need to restart squeak).

I joined a text file containing the gdb stack dump after the freeze, I thought some might be interested.

    /var/squeak$ squeakvm -nodisplay -mem 250m

Squeak now takes our simple stress tests without problem (VIRT: 300 MB, RES: 60 MB).

    /var/squeak$ squeakvm -nodisplay -nmap 250m

Squeak now takes our simple stress tests without problem.

Questions

---------

- Given our server specifications (1 GB of RAM, many users, see above), what are the recommended settings to start a Squeak VM on a linux server?
- Would you recommend using -nmap over -memory?
- How much memory should we give Squeak at startup, the whole 1 GB, 512 MB, other?
- Would you recommend using -notimer?

Thanks !
Seb.



(gdb) bt
#0  0x0807934f in updatePointersInRangeFromto (memStart=2077068264,
   memEnd=2077259252) at /var/squeak/Squeak-3.6-3/src/vm/interp.c:21600
#1  0x08067692 in mapPointersInObjectsFromto (memStart=2077068264,
   memEnd=2077259252) at /var/squeak/Squeak-3.6-3/src/vm/interp.c:9910
#2  0x0805f2f8 in incCompBody ()
   at /var/squeak/Squeak-3.6-3/src/vm/interp.c:4046
#3  0x0805f9a2 in incrementalGC ()
   at /var/squeak/Squeak-3.6-3/src/vm/interp.c:4401
#4  0x08078c35 in sufficientSpaceAfterGC (minFree=202504)
   at /var/squeak/Squeak-3.6-3/src/vm/interp.c:21312
*#5  0x0806f834 in primitiveNew ()
   at /var/squeak/Squeak-3.6-3/src/vm/interp.c:14970
#6  0x08071e18 in primitiveResponse ()
   at /var/squeak/Squeak-3.6-3/src/vm/interp.c:16510
#7  0x08062def in interpret () at /var/squeak/Squeak-3.6-3/src/vm/interp.c:6925
#8  0x0805af8c in main (argc=3, argv=0xbf9fd754, envp=0xbf9fd764)
   at /var/squeak/Squeak-3.6-3/platforms/unix/vm/sqUnixMain.c:1357