I've had success with Sysinternals Process Explorer. With this, you can search to find what process(es) have a file open, and you can use it to close the handle(s) if you want. Of course, it is safer to close the whole process. Exercise caution and judgement.
To find a specific file, use the menu option Find->Find Handle or DLL...
Type in part of the path to the file. The list of processes will appear below.
If you prefer command line, Sysinternals suite includes command line tool Handle, that lists open handles.
Examples
c:\Program Files\SysinternalsSuite>handle.exe |findstr /i "e:\"
(finds all files opened from drive e:\
"
c:\Program Files\SysinternalsSuite>handle.exe |findstr /i "file-or-path-in-question"
You only have a couple really good options. You are correct about SMB/CIFS over WAN, it is not the most efficient. The main benefit of going with SMB/CIFS, is to avoid a regular client/server architecture. The downside of having a decentralized architecture is inefficiency, which becomes more noticeable the more nodes connected. If you demand a decentralized setup over WAN/LAN, SMB/CIFS would be the only way to go. Also, SMB/CIFS over WAN is not recommended for security concerns.
I would prefer NFS in an all, or mostly, Linux LAN, Especially in a situation that is always connected, like shared home directory. NFS over WAN is nasty in regards to firewalls. It can be done and I have done it, but it is more then just opening a port. NFS really is a great choice when you want a NAS type setup.
If you are OK with a client/server model, I highly recommend WebDAV. You get automatically supported read (regular HTTP web-browser), easy firewalling with just one port (80 and/or 443), and solid performance.
FTP has its advantages, but over WAN you would want FTP with explicit SSL. FTPeS is newer, not all FTP clients supports it. Modern clients will, like a new copy of filezilla. But once again, firewalling is more then just popping a port open.
You really can't get more transparent then HTTP IMO. It's also what I do for my WAN/LAN, I even prefer it for just my regular LAN transfers.
Best Answer
This is most likely due to the SMB protocol being very "chatty", and requring many requests/acknowledgements before and during transfer. Here a couple of things that may help: