Re: Performance Issue with jcifs and NetApp
André Warnier <[email protected]> Wed, 29 May 2013 16:59:45 +0200
| Newsgroups | gmane.network.samba.java |
|---|---|
| Message-ID | <[email protected]> |
Torsten Uhr wrote: > Hi André, > > thanks for Your quick reply. > >> Is that what happens ? > Exactly. > >> "NetApp fileserver" (whatever that is), > see: http://www.netapp.com/de/products/protocols/nas/cifs.aspx > >> do you have any way, on the NetApp server, to trace what is going on and see what the difference is when accessing these files from the one or the other type of client ? > > I have pleased our customer to contact their operations to check out for any logs. At the moment their are only connection information but no logs. > >> Or alternatively, on the client system, to trace what is going on between that client and that NetApp server ? > I have told our customer to set the property 'jcifs.util.loglevel=10'. Are there any other tasks to enable logging in jcifs? > If i receive any further information, I will send it to You. Send it to the list, like before. I am not really an expert here, I was just trying to define the issue clearly. If the mounting of the CIFS filesystem works, and the access through that mountpoint is fast, that seems to eliminate any fundamental issue like network problems, or DNS problems, or authentication problems. So there must be something quite specific that slows down things when you access the files through the jcifs library. Which on the face of it looks a bit strange, because as far as I know the CIFS filesystem implementation under Linux is using much of the same codebase from samba.org. In that area, I am a bit over my head unfortunately. I would float a suspicion, but do not by any means consider this as a well-informed comment : maybe the way in which you are doing the access through the jcifs library is forcing it to create new connections all the time, resulting in a new authentication at each access ? That would probably slow down things quite a bit. The right tool to find out would be something like Wireshark, and get a network trace while you are reading a file (slowly) through the jcifs library. But you could just start such a (long) transfer, and then do a "netstat" on your Linux client. That should show at least the socket connections in use for that transfer. You are looking for port numbers :137, :138, :139 and :445. For example : netstat -pn | grep -P ":(445|137|138|139)\s"