By chiplunkar on Dec 14, 2007
One of my friends leading a quality team responsible for performance/stress testing of a network intensive application, had something interesting to discuss with me few months back.
The application has multiple instances of a component communicating to a central server over the network. In a customer environment, this piece of the software has one instance on one OS instance. This one does a lot of snmp talk back n forth with the server. The test case was to have ~1500 instances talking to a single server at a time. His team has a simulation script that runs 50 to 100 instances on one box. He had used 15 to 30 Solaris 8 and 9 hosts some 4 yrs back to successfully test it. Amazing effort ! Because those many instances are good enough to drive the system crazy. And managing 15 to 30 such system must have been SOMEthing!
The current situation was that he had a lab with reduced resources, a smaller team and very few days to repeat it with the latest version of the same s/w. So I gave him the obvious suggestion ! Virtualize the host(s) to get the magic set of 15 to 30 os instances. And more obvious choice of virtualization technology in this case, Solaris Containers. All the team needed was multiple OS instances of the same OS flair. Within this constraint, containers are extremely lightweight. The team had a 24 vCPU 48 G RAM box that was selected to host them.
So it all looked great on the paper. One of his team members configured some 8 zones to start with and started instantiating 100 per zone. The moment the instances in just 2 of them started talking over the network, the system refused to respond to any of the terminals connected. Although there were s/w partitions in the form of zones, all were sharing a NIC.
A team meeting with a few glum faces and few 'I knew it' remarks... And here is when the exclusive IP stack support added to containers came to the rescue !!! With additional NICs on board, and an upgrade to Solaris 10 Update 4, the zones were reconfigured to have exclusive ip type. And it worked !! 30 boxes down to a single box. So easy to manage, fast boot and shutdown, nearly instantaneous replication with cloning to get 16 Containers running 100 instances each. Cool Stuff !!!