Deploying Seaside 17 November, 2006

I just saw a very nice thread on the Seaside mailing list about deploying a seaside application. I thought I’d summarize the suggestions for this article.

First you should consider using a newer image. If you have to use an older image then make sure you load the following:

List from Philippe Marschall:

The patches we apply against 3.8, they are all in 3.9. I don’t know what of this is in 3.8.1.

Characters are improperly stored: http://bugs.impara.de/view.php?id=2254

Integer>>printOn:base:showRadix: http://bugs.impara.de/view.php?id=2229

printShowingDecimalPlaces: http://bugs.impara.de/view.php?id=1837 (Avi) Utilites class >> #floatPrecisionForDecimalPlaces:

http://bugs.impara.de/view.php?id=2187

categoryspeedup-al.1.cs.gz

Patches to consider:

TimeForSpeed: http://bugs.impara.de/view.php?id=4669

accurateDateAndTimeNow-brp: http://bugs.impara.de/view.php?id=0000474

Dictionary fix (again in 3.9)

From Michael Reuger:

For testing and debugging purposes you may want to run the image headed against a VNC server. We do this for most of the stuff running on our server. VNC listening on localhost only, then use a ssh tunnel to connect if needed.

When building a deployment image consider these suggestions from Philippe:

– Close Morphs. Weird things can happen if you leave them up open too long.

– Especially close the Transcript.

– Flush the Monticello Cache

– Build a special image for deployment without, RB, Shout, eCompletion, …

Yanni Chiu shared experiences and received some help with optimization:

I start the image with:

squeak -vm display=none,sound=none foo.image

where the image has been saved with the VNC server already running.

I mostly see the CPU usage at 49%, and sometimes at 99%.

When things are stable, the usage is 8%. Any ideas on how to get the image into a stable usage mode?

Adrian Lienhard responded:

in the beta version of 3.9 there was the higherPerformance preference turned on (->Preferences higherPerformance) which on one of our old test server made the image idle at around 30% IIRC!

Ultimately Yanni found some solutions:

I tried the hint from Lukas on the other half of this thread on the squeak-dev list – close windows and remove flaps.

So, I closed the Transcript in my current project, opened a new Morphic project, entered it, then turned off the flaps. I did the above via VNC, then I did a save image. Now, the response is snappy, and the squeak process doesn’t even show up on the “top” list (in fact, sshd is at the top with 0.3%).

Using “top -d 0.25” to refresh every 1/4 second, I see squeak show up at 4%, with spikes up to the 90’s when processing a request.

So in summary for deploying seaside consider a newer image, run headless or headed with VNC, check your optimization settings, close morphs especially Transcript and Flaps, check and clean your memory and caches, then save without development tools.

Happy Coding!