Monday, September 19, 2011

KeepAlive or not?

People have been discussing about turning an Apache feature on/off while I have been scratching my head wondering why the clients at the far side are suffering slow HTTPS connection behind NAT router and firewall.

HTTP v 1.1 protocol provide nice feature KeepAlive for Apache server to keep active connection opening to serve ongoing requests from the same client. In case of a prefork MPM Apache instance, it means a lock on the work process to this particular client and will no longer release until the client is completely fulfilled and let go.

For dynamic web application written by PERL, PHP or any other scripting language, a prefork process might be occupied by these resources intensive requests which cause a heavy loading at the server side. KeepAlive would create prolonged period of time for the process to work for one client only while others are waiting for the service. The process may actually work for many other clients at the same period of time. To free this, a temporary solution would be turning KeepAlive feature off in the configuration file like "httpd-default.conf".

A blogger Steve has found a programming way to sort this out but it may not good enough for ultimate setting embedded in Apache server itself. Anyway, it is still a workable solution.

For a better understanding, please read this.



Linux VM TCP UDP Tunning

Network optimization among server VMs is a hot topic as read in recent discussion. Back to the old-school optimization strategies, I find them useful in the VM world.

The followings are Linux network settings for high throughput interface card:


#
#
# Add these lines to /etc/sysctl.conf as appropriate
#

vm.swappiness = 10

net.core.wmem_max = 8388608

net.core.rmem_max = 8388608

net.core.rmem_default = 65535

net.core.wmem_default = 65535

net.ipv4.tcp_rmem = 4096 87380 8388608

net.ipv4.tcp_wmem = 4096 65536 8388608

net.ipv4.tcp_mem = 8388608 8388608 8388608

net.ipv4.route.flush = 1

net.ipv4.tcp_window_scaling = 1

net.ipv4.tcp_timestamps = 1

net.ipv4.tcp_sack = 1

Thanks for the tips:
http://wwwx.cs.unc.edu/~sparkst/howto/network_tuning.php
http://fasterdata.es.net/fasterdata/host-tuning/linux/

Thursday, September 8, 2011

[RESOLVED] Slow Windows 7 Guest VM after upgrade to SP1

VMware has pointed out that VMware Workstation prior to version 7.1.4 is known to have problem with Windows 7 Host upgraded to Service Pack 1 (SP1).

So, what about Windows 7 Guest VM equipped with SP1? I have my PC installed VMware 7.1.3 which only allows the administrator to perform any upgrade on it. Thanks to the company policy.

After the upgrade of Guest VM to SP1, Guest VM nearly caused the system to hang for minutes to do simple tasks and a high CPU usage at all time. People blamed on VMware's memory optimization feature which is enabled by default to optimize Guest VM memory consumption.

Temporary solution would be adding the following line into config.ini file located at C:\ProgramData\VMware\VMware Workstation:

vmmon.disableHostParameters = TRUE


This turns off VM memory optimization feature and some other possible host configurable features. After saving the change onto config.ini file, a clean reboot on hosting system is recommended.

Now, your favourite Win7 SP1 Guest VM should be back on track with presumably high performance.

Reference:
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1036185