SVN Performance Issues with IPV6 - performance

I'm using SlikSVN's 64-bit subversion server for source control. I noticed that a few applications were taking a really long time to perform simple actions with repositories the other day, such as browsing the repository, committing etc, and I thought it was a fault within the applications themselves.
I tried the same actions logged into my network via VPN however, and they were all super-speedy. The only difference was that I was connecting to the subversion server via the IP address (v4) rather than hostname. After a few tests, I found that the problem seemed to have something to do with IPV6.
Disabling IPV6 made most of the performance issues disappear, but I'm not sure I want this to be the solution...
IPV6 seems to be supported by SlikSVN - it even has a -6 parameter (which I have tried) to make svnserve prefer ipv6 connections, but it doesn't seem to help the issue all that much. I'm also using the latest versions of the applications which are having issues (AnkhSVN is one of them), and believe them to also support IPv6.
I'd be tempted to add an entry to the hosts file so that name resolution for the SVN host always resolves to an IPv4 address, but this still feels a bit hacky to me.
Does anyone have any experience with this sort of issue?
Many thanks,
Nick

Related

Skype probably breaking Windows Internet connectivity

I have three cases when using Skype on Windows is most probably the cause of Internet connectivity interruption on the computers in question.
Two of computers affected run Windows 7 Eng 64-bit, one runs Windows 8 Eng 64-bit, latest updates installed.
In two cases (one of Windows 7 computers + Windows 8 computer) after using Skype for some time Internet connectivity is broken, namely
All local network connectivity isn't affected
Traffic that should be
passed outside local network, doesn't leave the computer (when
recording traffic on gateway, not a single packet comes from the
computer in question)
"route print" displays normal routing table
(no duplicate routes/other routing errors)
Uninstalling/Reinstalling Skype in the above cases cured the problem immediately.
The third case (Windows 7): using Skype to generate much traffic (e.g., holding audio/video conference) causes short-time Internet connectivity loss. As in earlier mentioned cases, local connectivity isn't lost, but all outer hosts, when tracert'ed, are displayed as available in single hop, yet they do not respond. In this case the problem heals by itself.
Linux-running computer serves as gateway to Internet (NAT).
Checked and adjusted already: routing, DHCP/DNS settings, firewall rules, malware scanning (nothing found), checking hardware, replacing patchcords/network cards, all for no avail. Switching "UPnP" in Skype off in the latter case made no difference, the first two didn't yet exhibit the mentioned problem again after disabling UPnP.
Skype version used: the latest one, available from Skype.com. The rest of systems running Skype, on Windows or not, do not report similar problems.
Question: are there known Skype-inflicted connectivity problems in Windows, and, if yes, what are ways to solve them reliably?
Skype uses port 80 by default. You could try changing the default port to something else that doesn't already have a service running on it.

How to create a secure automated transfer of binary files between windows servers through a firewall, using powershell?

This is my first question on SO, and I am have tried to avoid it, but am forced to ask. I can't use FTP, as that's insecure. I can't use FTPS, as I can't introduce expiring cert overhead. WEBDAV over https isn't an option.
What would be ideal would be a firewall friendly robocopy, as that uses windows auth.
I am looking at powershell with BITS, but can't find what port it's using or it's requirements on Windows 2012 exclusively. Older systems have stated requirements that they need IIS, but I can't find that stated on Microsoft's sites anywhere:
https://www.google.com/search?hl=en&q=site%3Amicrosoft.com%20windows%202012%20bits
I looked on here and found 56 articles related to BITS. Example: How to use BITS in Powershell to upload / download files?
I tried performing the file transfer with powershell without caring about the port, but the automation of this is problematic, as I keep getting an error:
The operation being requested was not performed because
the user has not logged on to the network. The specified service does not
exist. (Exception from HRESULT: 0x800704DD)
And ultimately, the port matters because I have to go through a firewall.
I don't want to make an assumption that the requirements from earlier versions of BITS still apply, because Murhphy's Law says I will be burned by it.
Does anyone has a possible solution to this problem? One that doesn't involve the purchase or use of non-native tools. On Linux, I would solve this with SSH, exchange some keys, and it just works. Is there anything in the windows platform that does something similar and is native to the OS?
Here's one way:
http://www.nivot.org/post/2009/11/02/PowerShell20IntroducingThePModemFileTransferProtocol
It works over a WSMAN/PSRemoting session, so you can specify the port, use HTTPS.

best way to set up a VM for development (regarding performance)

I am trying to set up a clean vm I will use in many of my devs. Hopefully I will use it many times and for a long time, so I want to get it right and set it up so performance is as good as possible. I have searched for a list of things to do, but strangely found only older posts, and none here.
My requirements are:
My host is Vista 32b, and guest is Windows2008 64b, using Vmware Workstation.
The VM should also be able to run on a Vmware ESX
I cannot move to other products (VirtualBox etc), but info about performance of each one is welcomed for reference. Anyway I guess most advices would apply to other OSs and other VM products.
I need network connectivity to my LAN
When developing/testing, guest will run several java processes, a DB and perform some file I/O
What I have found so far is:
HOWTO: Squeeze Every Last Drop of Performance Out of Your Virtual PCs: it's and old post, and about Virtual PC, but I guess most things still apply (and also apply to vmware).
I guess it makes a difference to disable all unnecessary services, but the ones mentioned in 1 seem like too few, I specifically always disable Windows Search. Any other service I should disable?
You can try to run the CD/DVD through vLite to remove unwanted crap. I'm not 100% sure if Windows 2008 server is supported but you could give it a try. I've successfully stripped down XP with nLite to about 200MB with only the bare minimum I need for testing software. You might be able to do something similar to Windows 2008 with vLite.
My host is Vista 32b, and guest is
Windows2008 64b,
First mistake. Seriously, why not running 64 bit even on Vista? This would give your VM a good memory space to work with, while now even if it is possible with VmWare it goes through really nasty API's in the Windows layer.
That said, why use Vista as host? Why not directly load a 2008 R2 host, configure it into workstation mode (heck, you even get our friendly AERO if you install all the things the server leaves out per default) and be happy with it?
I guess it makes a difference to
disable all unnecessary services,
Hm, seriously? I run a couple of Hyper-V hosting servers on top of physical domain controllers without any reconfiguration and with good enough (i.e. great) perforamnce. Helps I dont ahve the typical workstation bottleneck (i.e. one overloaded hard disc). I never found a reason to disable any service for squeezing the last performance out.
Guest will run many java processes, a
DB and perform lots of file I/O
Well, get proper hardware for that. I.e. a hardware RAID controller, and a LOT of drives - in accordance with your needs. DB is IO sensitive. VERY sensitive.

Adding an host programmatically (name resolution under Windows)

I would like to programmatically add to Windows a name / IP association so that this name can be resolved locally. This does not have to be persisted between reboots.
The only way I now is to add an entry to the "hosts" file, but this feels hacky especially since I would like to automate this.
Is there any way to do this using a command-line tool or a Win32 API? Perhaps by addind an entry to Windows DNS cache or something similar?
Oh, and please state if this solution is Vista-compatible.
Regards.
Edit : Thanks, guy. Sadly, all of your answers indeed involve DNS or other servers. I was looking for a purely local solution which would work on a "standard" Windows installation. Such a thing does not seem to exist, though.
This page lists a bunch of scripts for doing various things with the DNS service, including adding a name to it. This seems to be part of the Windows Management Instrumentation system, which I'm afraid I don't know anything about.
EDIT: There is also this function, which says it can add records to the DNS. Not sure if that means that it actually modifies the DNS server's state, or if it talks about the local resolver. It also requires Windows 2000 Server or greater, so it might be too narrow.

Windows networking name resolution

This is not yet particularly programing related but, I am very interested in how Vista and XP resolve network names in a home LAN situation.
With Windows 2000, network name resolution was either done via the netbeui protocol - tcp/ip networks needes a wins server. XP and Vista no longer install netbeui by default, so its entirely unclear to me how PCs on a lan are meant to find each other.
One part of the puzzle's solution seems to be, IF there is a router appliance on the network that is configured as a DHCP server (and, as a result, a DNS server) then DNS queries of PC names tend to resolve.
In the more isolated case - a couple of XP and Vista PCs connected to an ethernet hub, configured to talk only tcp/ip - what services and what protocols are involved in name resolution and broadcasting?
It's been a while since I've had to deal with this sort of thing professionally, so I doubt I could give you an accurate off-the-cuff answer, but I'll say this: If you have access to a network similar to the one you are interested in, I highly recommend you install Wireshark or a similar tool on one of the machines involved and simply observe the traffic on the network in question. It's very easy to do and yields reliable information about a particular configuration very quickly, even when reality differs significantly from what one might reasonably expect. I've often been really surprised by some of the things I've seen, especially when it comes to name resolution.
Generating name lookup traffic is simplicity itself -- in fact, Wireshark itself might try to look up names in order to include them in its output, unless you ask it not to, so you might not need to take any explicit action at all, depending. Do remember to watch out for caches and switches.
Old question but for completion:
In peer networks (i.e. no Active Directory, WINS servers, etc.):
Windows Vista and above use Link-local Multicast Name Resolution(LLMNR), with fall back to NetBios over TCP/IP broadcast, which is what Windows XP uses.
It looks like Peer Name Resolution Protocol is being used with Vista and XP.
Peer Name Resolution Protocol
http://technet.microsoft.com/en-us/library/bb726971.aspx
People Near Me
http://technet.microsoft.com/en-us/library/bb726969.aspx
Edit: After doing a little bit more digging after Chris's comment, here is a link on how Windows XP Professional resolves names:
http://technet.microsoft.com/en-us/library/bb457118.aspx#ECAA

Resources