Press "Enter" to skip to content

Category: Tools

Improving Hyper-V Windows Virtual Machine Network Performance

I have a webserver on a Hyper-V platform as a virtual machine running Windows 2012 Server, and what I noticed was how poor network performance was on long distance networks due to the way TCP works. Local traffic performed optimal, however anything greater to a destination 100ms+ latency , network throughput suffered.

I managed to discover a tweak on the actual Hyper-V Network Adapter on the virtual machine by adjusting the send and receive buffers. I found that a “Receive Buffer Size” 16MB and “Send Buffer Size” 8MB was optimal and significantly improved network performance on response time and single threaded downloads from the webserver. I have included the below images to assist in making the changes and locating this.
HyperV NIC
send_buffer_sizenetwork_receive_buffer
I hope someone finds this useful and it also improves your virtual machine network performance!

Leave a Comment

Netdisco 2 Service Startup Script Centos/Redhat

I have been trying out the new package of Netdsico 2 from https://metacpan.org/pod/App::Netdisco and I must say im quite impressed by the new version, it has a new interface and its quite smooth to operate. Everything is bundled inside the package and deployed part as of CPAN. Its quite a bit different than Netdisco 1 in terms of installing and configuring, and it is bit easier to work with.

One of the things which I needed was a startup script to start the netdisco-daemon and netdisco-web service on Red Hat / Centos, so I built a custom service to operate it.

Simply download netdisco-web  and netdisco-daemon files , remove the .txt extension, and drop them into /etc/init.d on your redhat/centos system using WinSCP or similar.

Once the files are in there add execute privilege, go into /etc/init.d using terminal

[root@centos init.d]# chmod +x netdisco-daemon 
[root@centos init.d]# chmod +x netdisco-web

Then add the files as part of the startup process

[root@centos init.d]# chkconfig --add netdisco-daemon 
[root@centos init.d]# chkconfig --add netdisco-web 
[root@centos init.d]# chkconfig netdisco-daemon on --level 2345 
[root@centos init.d]# chkconfig netdisco-web on --level 2345

Lets check the startup run levels, looks good

[root@centos init.d]# chkconfig --list | grep netdisco
netdisco-daemon 0:off 1:off 2:on 3:on 4:on 5:on 6:off 
netdisco-web 0:off 1:off 2:on 3:on 4:on 5:on 6:off

 

Now lets check the service

 

[root@centos init.d]# service netdisco-web start Netdisco Web [Started] 
[root@centos init.d]# config watcher: watching /home/netdisco/environments for updates. 
[root@centos init.d]# service netdisco-daemon start Netdisco Daemon [Started]
 config watcher: watching /home/netdisco/environments for updates.

We can see it is working well.

We can then pass the “help” parameter what the service offers

[root@centos init.d]# service netdisco-daemon help Usage: {start|stop|restart|status|help} 
[root@centos init.d]# service netdisco-web help Usage: {start|stop|restart|status|help}

I finally have my netdisco 2 service operational and working well. The bootup scripts have been made so that it allows postgresql to startup first which netdisco relies on, then the daemon and then finally the web.

I haven’t tested on other linux platforms, but i’m sure it will be operational as well with possibly a few tweaks. Hopefully it will assist you too.

Leave a Comment