|
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
|