Server Setup
From Pliant Wiki
I run the following setup. The main server is called dagny, and the two virtual servers inside it are called rearden and francisco. On rearden I run the pliant ui, on francisco I run the http proxies.
boris@dagny:~$ uname -a Linux dagny 2.6.22-3-vserver-686 #1 SMP Tue Dec 4 08:57:30 UTC 2007 i686 GNU/Linux boris@dagny:~$ sudo vserver-stat CTX PROC VSZ RSS userTIME sysTIME UPTIME NAME 40003 735 1.4G 385.9M 7h04m22 7m26s82 18h21m04 rearden 40004 112 451.2M 165.1M 4h36m49 4m17s77 9h50m24 francisco
On francisco I limit RAM and SWAP
boris@dagny:~$ sudo vlimit -d -c 40004 -a |grep "AS\|RSS" RSS N/A 128000 128000 AS N/A N/A 128000
And I set fullpliant to autorestart on francisco,
boris@francisco:~$ cat /etc/inittab | grep fullpliant pl:23:respawn:/pliant/sites/bin/start_fullpliant.sh
The contents of start_fullpliant.sh are,
boris@francisco:~$ cat /pliant/sites/bin/start_fullpliant.sh /pliant/fullpliant >> /pliant/sites/logs/pliant.log 2>&1
So, if proxies start to consume too much memory due to memory leaks,
they'll be restart automatically.
On francisco I have three kinds of http_proxies, each running inside a separate Pliant logical computer.
- http_proxy that uses frames, and looks like the UI browser (it is used to access ui admin applications for admin purpose)
- http_proxy that doesn't use frames, and is used to power a website like Pliant Web Demo
- debugging version http_proxy that I can test without disturbing live operation.
Each of the logical computer is set to autorestart inside main pliant process running on francisco.
boris@francisco:~$ ps aux | grep pliant root 10765 0.0 0.0 2616 1204 ? Ss 01:18 0:00 /bin/sh /pliant/sites/bin/start_fullpliant.sh root 10766 0.0 0.5 26496 12064 ? S 01:18 0:20 /pliant/fullpliant root 10792 0.0 0.5 26496 12064 ? S 01:18 0:00 /pliant/fullpliant root 10793 0.0 0.5 26496 12064 ? S 01:18 0:22 /pliant/fullpliant daemon 10795 0.1 0.7 22436 16160 ? Ss 01:20 0:55 proxy2.hypervolume.com module /pliant/install/minimal.pli module /pliant/fullpliant/run.pli daemon 10816 0.0 0.7 22436 16160 ? S 01:21 0:00 proxy2.hypervolume.com module /pliant/install/minimal.pli module /pliant/fullpliant/run.pli daemon 10818 0.0 0.7 22436 16160 ? S 01:22 0:00 proxy2.hypervolume.com module /pliant/install/minimal.pli module /pliant/fullpliant/run.pli root 10820 0.0 0.5 26496 12064 ? S 01:22 0:04 /pliant/fullpliant root 10821 0.0 0.5 26496 12064 ? S 01:22 0:06 /pliant/fullpliant root 10822 0.0 0.5 26496 12064 ? S 01:23 0:13 /pliant/fullpliant daemon 21306 71.0 0.5 21292 11916 ? Rs 11:19 0:37 proxy1.hypervolume.com module /pliant/install/minimal.pli module /pliant/fullpliant/run.pli daemon 21310 0.0 0.5 21292 11916 ? S 11:19 0:00 proxy1.hypervolume.com module /pliant/install/minimal.pli module /pliant/fullpliant/run.pli
