[jcifs] Performance Issue with jcifs and NetApp

Torsten Uhr torsten.uhr at sql-ag.de
Thu May 30 03:19:58 MDT 2013


Hi André,

here are the results oft he netstat command before, while listing the folder and after that.
It seems there are no unexpected connections.

BEFORE:
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"

WHILE:
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      1 172.30.36.1:57740       193.30.60.233:445       SYN_SENT    27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      1 172.30.36.1:57740       193.30.60.233:445       SYN_SENT    27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      1 172.30.36.1:57740       193.30.60.233:445       SYN_SENT    27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      1 172.30.36.1:57740       193.30.60.233:445       SYN_SENT    27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      1 172.30.36.1:57740       193.30.60.233:445       SYN_SENT    27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      1 172.30.36.1:57740       193.30.60.233:445       SYN_SENT    27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      1 172.30.36.1:57740       193.30.60.233:445       SYN_SENT    27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      1 172.30.36.1:57740       193.30.60.233:445       SYN_SENT    27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      1 172.30.36.1:57740       193.30.60.233:445       SYN_SENT    27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      1 172.30.36.1:57740       193.30.60.233:445       SYN_SENT    27162/java
tcp        0      0 172.30.36.1:57756       172.30.40.62:445        VERBUNDEN   27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      1 172.30.36.1:57740       193.30.60.233:445       SYN_SENT    27162/java
tcp        0      0 172.30.36.1:57756       172.30.40.62:445        VERBUNDEN   27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      0 172.30.36.1:57756       172.30.40.62:445        VERBUNDEN   27162/java
tcp        0      1 172.30.36.1:57742       193.30.60.233:445       SYN_SENT    27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      0 172.30.36.1:57756       172.30.40.62:445        VERBUNDEN   27162/java
tcp        0      1 172.30.36.1:57742       193.30.60.233:445       SYN_SENT    27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      0 172.30.36.1:57756       172.30.40.62:445        VERBUNDEN   27162/java
tcp        0      1 172.30.36.1:57742       193.30.60.233:445       SYN_SENT    27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      0 172.30.36.1:57756       172.30.40.62:445        VERBUNDEN   27162/java
tcp        0      1 172.30.36.1:57742       193.30.60.233:445       SYN_SENT    27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      0 172.30.36.1:57756       172.30.40.62:445        VERBUNDEN   27162/java
tcp        0      1 172.30.36.1:57742       193.30.60.233:445       SYN_SENT    27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      0 172.30.36.1:57756       172.30.40.62:445        VERBUNDEN   27162/java
tcp        0      1 172.30.36.1:57742       193.30.60.233:445       SYN_SENT    27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      0 172.30.36.1:57756       172.30.40.62:445        VERBUNDEN   27162/java
tcp        0      1 172.30.36.1:57742       193.30.60.233:445       SYN_SENT    27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      0 172.30.36.1:57756       172.30.40.62:445        VERBUNDEN   27162/java
tcp        0      1 172.30.36.1:57742       193.30.60.233:445       SYN_SENT    27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      0 172.30.36.1:57756       172.30.40.62:445        VERBUNDEN   27162/java
tcp        0      1 172.30.36.1:57742       193.30.60.233:445       SYN_SENT    27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      0 172.30.36.1:57756       172.30.40.62:445        VERBUNDEN   27162/java
tcp        0      1 172.30.36.1:57742       193.30.60.233:445       SYN_SENT    27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      0 172.30.36.1:57756       172.30.40.62:445        VERBUNDEN   27162/java
tcp        0      1 172.30.36.1:57742       193.30.60.233:445       SYN_SENT    27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      0 172.30.36.1:57756       172.30.40.62:445        VERBUNDEN   27162/java
tcp        0      1 172.30.36.1:57742       193.30.60.233:445       SYN_SENT    27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      0 172.30.36.1:57756       172.30.40.62:445        VERBUNDEN   27162/java
tcp        0      1 172.30.36.1:57742       193.30.60.233:445       SYN_SENT    27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      0 172.30.36.1:57756       172.30.40.62:445        VERBUNDEN   27162/java
tcp        0      1 172.30.36.1:57742       193.30.60.233:445       SYN_SENT    27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      0 172.30.36.1:57756       172.30.40.62:445        VERBUNDEN   27162/java
tcp        0      1 172.30.36.1:57742       193.30.60.233:445       SYN_SENT    27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      0 172.30.36.1:57756       172.30.40.62:445        VERBUNDEN   27162/java
tcp        0      1 172.30.36.1:57742       193.30.60.233:445       SYN_SENT    27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      0 172.30.36.1:57756       172.30.40.62:445        VERBUNDEN   27162/java
tcp        0      1 172.30.36.1:57742       193.30.60.233:445       SYN_SENT    27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      0 172.30.36.1:57756       172.30.40.62:445        VERBUNDEN   27162/java
tcp        0      1 172.30.36.1:57742       193.30.60.233:445       SYN_SENT    27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      0 172.30.36.1:57756       172.30.40.62:445        VERBUNDEN   27162/java
tcp        0      1 172.30.36.1:57742       193.30.60.233:445       SYN_SENT    27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      0 172.30.36.1:57756       172.30.40.62:445        VERBUNDEN   27162/java
tcp        0      1 172.30.36.1:57742       193.30.60.233:445       SYN_SENT    27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      0 172.30.36.1:57756       172.30.40.62:445        VERBUNDEN   27162/java
tcp        0      1 172.30.36.1:57742       193.30.60.233:445       SYN_SENT    27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      0 172.30.36.1:57756       172.30.40.62:445        VERBUNDEN   27162/java
tcp        0      1 172.30.36.1:57742       193.30.60.233:445       SYN_SENT    27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      0 172.30.36.1:57756       172.30.40.62:445        VERBUNDEN   27162/java
tcp        0      1 172.30.36.1:57742       193.30.60.233:445       SYN_SENT    27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      0 172.30.36.1:57756       172.30.40.62:445        VERBUNDEN   27162/java
tcp        0      1 172.30.36.1:57742       193.30.60.233:445       SYN_SENT    27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      0 172.30.36.1:57756       172.30.40.62:445        VERBUNDEN   27162/java
tcp        0      1 172.30.36.1:57742       193.30.60.233:445       SYN_SENT    27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      0 172.30.36.1:57756       172.30.40.62:445        VERBUNDEN   27162/java
tcp        0      1 172.30.36.1:57742       193.30.60.233:445       SYN_SENT    27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      1 172.30.36.1:57743       193.30.60.233:445       SYN_SENT    27162/java
tcp        0      0 172.30.36.1:57756       172.30.40.62:445        VERBUNDEN   27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      1 172.30.36.1:57743       193.30.60.233:445       SYN_SENT    27162/java
tcp        0      0 172.30.36.1:57756       172.30.40.62:445        VERBUNDEN   27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      1 172.30.36.1:57743       193.30.60.233:445       SYN_SENT    27162/java
tcp        0      0 172.30.36.1:57756       172.30.40.62:445        VERBUNDEN   27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      1 172.30.36.1:57743       193.30.60.233:445       SYN_SENT    27162/java
tcp        0      0 172.30.36.1:57756       172.30.40.62:445        VERBUNDEN   27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      1 172.30.36.1:57743       193.30.60.233:445       SYN_SENT    27162/java
tcp        0      0 172.30.36.1:57756       172.30.40.62:445        VERBUNDEN   27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      1 172.30.36.1:57743       193.30.60.233:445       SYN_SENT    27162/java
tcp        0      0 172.30.36.1:57756       172.30.40.62:445        VERBUNDEN   27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      1 172.30.36.1:57743       193.30.60.233:445       SYN_SENT    27162/java
tcp        0      0 172.30.36.1:57756       172.30.40.62:445        VERBUNDEN   27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      1 172.30.36.1:57743       193.30.60.233:445       SYN_SENT    27162/java
tcp        0      0 172.30.36.1:57756       172.30.40.62:445        VERBUNDEN   27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      1 172.30.36.1:57743       193.30.60.233:445       SYN_SENT    27162/java
tcp        0      0 172.30.36.1:57756       172.30.40.62:445        VERBUNDEN   27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      1 172.30.36.1:57743       193.30.60.233:445       SYN_SENT    27162/java
tcp        0      0 172.30.36.1:57756       172.30.40.62:445        VERBUNDEN   27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      1 172.30.36.1:57743       193.30.60.233:445       SYN_SENT    27162/java
tcp        0      0 172.30.36.1:57756       172.30.40.62:445        VERBUNDEN   27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      1 172.30.36.1:57743       193.30.60.233:445       SYN_SENT    27162/java
tcp        0      0 172.30.36.1:57756       172.30.40.62:445        VERBUNDEN   27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      1 172.30.36.1:57743       193.30.60.233:445       SYN_SENT    27162/java
tcp        0      0 172.30.36.1:57756       172.30.40.62:445        VERBUNDEN   27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      1 172.30.36.1:57743       193.30.60.233:445       SYN_SENT    27162/java
tcp        0      0 172.30.36.1:57756       172.30.40.62:445        VERBUNDEN   27162/java
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
tcp        0      1 172.30.36.1:57743       193.30.60.233:445       SYN_SENT    27162/java
tcp        0      0 172.30.36.1:57756       172.30.40.62:445        VERBUNDEN   27162/java

AFTER:
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s"
grztc001:/TransConnect # netstat -pn | grep -P ":(445|137|138|139)\s" 

With best regards

Torsten Uhr
Leiter Entwicklung TransConnect®

Email: torsten.uhr at sql-ag.de
Web  : www.transconnect-online.de
·······················································
SQL Projekt AG
Franklinstr. 25 a
01069 Dresden

Aufsichtsratsvorsitzender: Franz-Josef Günther
Vorstand: Jürgen Bittner (Vorsitzender), André Engelhorn, Jens Gärtner
Handelsregister: HRB 28128 Amtsgericht Dresden

Telefon: (0351) 87619-0
Telefax: (0351) 87619-99
http://www.sql-ag.de
······················································· 

Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte Informationen. 
Wenn Sie nicht der richtige Adressat sind oder diese E-Mail irrtümlich erhalten haben, informieren Sie bitte sofort den Absender und vernichten Sie diese Mail. Das unerlaubte Kopieren sowie die unbefugte Weitergabe dieser Mail oder Inhalte ist nicht gestattet. 

This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and destroy this e-mail. 
Any unauthorized copying, disclosure or distribution of the material in this e-mail is strictly forbidden.

 SAVE PAPER - THINK BEFORE YOU PRINT


-----Ursprüngliche Nachricht-----
Von: jcifs-bounces at lists.samba.org [mailto:jcifs-bounces at lists.samba.org] Im Auftrag von André Warnier
Gesendet: Mittwoch, 29. Mai 2013 17:00
An: JCIFS Samba list
Betreff: Re: [jcifs] Performance Issue with jcifs and NetApp

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"




More information about the jCIFS mailing list