Prabakaran, I’ll try to provide as much help as I can. This response is going to be tailored for Witango 5.5 (and previous) installations. I would consider this information deprecated for Witango/TeraScript 6.x and not applicable to TeraScript v7.x
I believe that running multiple instances is nearly a must. Witango 5.5 has several memory leaks and instabilities which require it to be restarted often (usually nightly) and automatically recover from crashes. Small pools of 2 to 4 services are the right way to increase uptime during these events. All versions of Witango and TeraScript require a Professional or Advanced license to run multiple instances on one server. You also have the option of running multiple physical or virtual servers each with a standard license on one instance. Witango 5.5 is tailored for running multiple instances on one server. It has an affinity option that allows you to keep processing of an instance on a given set of CPUs. Here’s an example of one installation I have in my network now. This was actually setup about 7 years ago and hasn’t been changed since. Server: 53xx XEON with two quad core CPUs (8 cores total) Witango 5.5 instances: 4 The first instance has affinity mask of 11000000, the second instance has 00110000, etc. The server is Windows 2003 R2 64-bit with 16 GB of ram I consider this server as stable as Witango 5.5 can get. You may have problems with some operations of the server. These are all related to non-core functions. For example, if two instances both call an external batch file at the same time, they can lock against each other. JavaScript, accessing a JVM, @URL, and other “external” operations will be areas where deadlocks and memory leaks can occur. Many users of Witango 5.5 don’t experience these problems simply because they don’t use these functions. I recently corrected a memory leak related to using regex (eg @REGEX) which only leaked when the match failed. Bugs like this are in 5.5 and previous versions. Basically what this means is that when you move to a pooled set of instances on one server, some code may need to be changed as a work around to new problems. These problems typically do not occur if you decide to run multiple physical or virtual servers with a single instance on each. This is how I deploy high traffic sites today and with v7, instances typically run for the month between Windows Update reboots. Clients.ini does tell the Apache/IIS plugin how to find services. The mapping is done with IP + port (when running multiple services on one server, each must listen on a different TCP port). The server selection is random, there is no logic to it – not even round robin. A call to a server will wait about 2 seconds before giving up and trying a different server. As you can see, both the load balancing and failover capabilities of the plugin are extremely basic. In addition, there is no intra-service communication. This means that shared scopes, like the domain scope, must be maintained by your code. If server 1 @ASSIGNs a value into the domain scope, that value is not assigned into the domain scope on server 2. You have to engineer software to do that work. I would also recommend continuing to use Windows Server 2003 R2. It’s the best match for Witango 5.5, I realize that this suggestion has limited longevity with EOL coming next summer, but Witango 5.5 is already EOL anyway. The IIS plugin has been rock solid since 5.0 days. It’s one of those things that Microsoft made easy to do well. One last point. The vast majority of this effort will provide improved stability and uptime. It will not, generally speaking, improve performance. Having 4 instances each processing 1 request is generally better than 1 instance processing 4 requests. This is especially true if you divide up the processing power with affinity masks. But in the end, the throughput of your application is tied to database performance and memory throughput. I hope that helps, Robert PS. (I am in business after all) Upgrading to even one Standard license of TeraScript v7 would likely solve all of your issues. From: [email protected] [mailto:[email protected]] Sent: Tuesday, October 21, 2014 3:07 AM To: [email protected] Subject: Re: TeraScript-Talk: Can Witango 5.5 multiple process be run in a server? Thanks Matt, that was pretty enlightening. Now I’ve got a few more questions :) and I guess you or Robert can address this quite easily. What was the instability issue observed when running behind Apache? And how or what way has IIS improved the stability? While scanning through the archives I also came across this “CPU and database I/O is key. Witango doesn't use the disk much, and as a 32-bit application, can only address 2 GB of memory.( https://www.mail-archive.com/[email protected]/msg21836.html) <https://www.mail-archive.com/[email protected]/msg21836.html)”Whereas> ”Whereas for my app it seems anything beyond 1GB and the instances start acting up and bring the application down pretty soon (as soon as 900 Mb-1GB mark is reached). I have been contemplating to make use of multiple instances of Witango 5.5 / Terascript in 1 physical server running behind 1 Apache and even that is not recommended (as I see from your response). Why is it so? I do know that clients.ini does the job of load balancing but since the thoughts are now hovering around having a couple more instances in each physical server, it made me ponder whether the traffic can be balanced even if 2 instances are running on the same machine (given that clients.ini does IP based load balance). My aim is of having 2 instances of T5.5 behind 1 apache / physical server. Is this achievable? Will this better my app’s performance? Thanks & Regards Prabakaran _____ From: Tango-Talk <[email protected] <mailto:[email protected]> > Sent: Monday, October 20, 2014 7:11 PM To: [email protected] <mailto:[email protected]> Cc: [email protected] <mailto:[email protected]> Subject: Re: TeraScript-Talk: Can Witango 5.5 multiple process be run in a server? Hi, Prabakaran. We have run multiple Witango 5.5 server instances in Windows 2003. We have one web server behind a load balancer that has a hot-swap web server in waiting in case that one crashes. This singe web server sends Witango/Terascript requests to one of two physical app servers, each with 6 Witango/Terascript instances. Robert can surely provide a more technical answer but in our experience the load is spread evenly across all the app server instances. I imagine the client.ini handles this. I don't know if there is any logic to it, but rather the order of the servers listed in the client.ini are simply round-robin'd. We've updated most our servers to T6, where we also run multiple app server instances per server. We're running everything on Windows 2008 servers now and I'm actually in the process of testing a build on a Windows 2012 server. We had Terascript6 running behind an Apache (for Windows) web server but experience some instability. Since moving to IIS on Windows, per Robert's suggestion, we've been running smoothly. We are in the process of following Robert's suggestion of moving toward multiple web/app server instances instead of multiple app servers instances per box. It will require us rearchitecting a few things since the webroot/htdocs directory will be on multiple servers. Probably more than you wanted to know but thought I'd share with the list how W5.5/T6 is being deployed at our shop. - Matt [email protected] <mailto:[email protected]> writes: Hi there, Can we run multiple processes of Witango 5.5 server in Windows 2003 server? If this can be done, can the load balancing be done between the processes thus bringing better stability to the app? Regards Prabakaran ________________________________ This message is for the designated recipient only and may contain privileged, proprietary, or otherwise confidential information. If you have received it in error, please notify the sender immediately and delete the original. Any other use of the e-mail by you is prohibited. Where allowed by local law, electronic communications with Accenture and its affiliates, including e-mail and instant messaging (including content), may be scanned by our systems for the purposes of information security and assessment of internal compliance with Accenture policy. ______________________________________________________________________________________ www.accenture.com <http://www.accenture.com> ---------------------------------------- To unsubscribe from this list, please send an email to [email protected] <mailto:[email protected]> with "unsubscribe terascript-talk" in the body. _____ To unsubscribe from this list, please send an email to [email protected] <mailto:[email protected]> with "unsubscribe terascript-talk" in the body. _____ To unsubscribe from this list, please send an email to [email protected] <mailto:[email protected]> with "unsubscribe terascript-talk" in the body. ---------------------------------------- To unsubscribe from this list, please send an email to [email protected] with "unsubscribe terascript-talk" in the body.
