Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations gkittelson on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

SMB performance issue between win98 & win2k

Status
Not open for further replies.

joebloeonthego

Technical User
Mar 7, 2003
212
CA
I've got a foxpro application (client/server) that runs verrrry slow over everyone's workstations (win98 workstations, win2k server). If I run the same program from our one other win2k server, it's fast. I ran ethereal to see if it was a network issue, and it is. A small transaction generates 3000 packets/frames on the win2k box, but 8000 on the win98. And it gets worse the larger the transaction (7 sec compared to 6 min.)
The bulk of the extra packets generated by the win98 conversation are 'flush requests'. (the win2k box sends no such requests) (also the win98 box does raw reads/writes, whereas the win2k uses AndX commands)
Some further digging revealed that the win2k box receives NT_STATUS error messages, and the win98 box receives DOS_ERRORs.
Is this a LanMan1.0 <-> NT LanMan 0.12 issue? (I'm no expert on this stuff, just what I've read about since yesterday trying to diagnose the difference)
Anyone have any idea what's going on, and what I can do?

thanx!

ps - I posted in the NetBEUI forum, but it seems pretty dead, so I posted here too.
 
This looks like a connection issue and not SMB:

1. Autosensing failure between switch and workstation NIC; you can use this matrix for some hints as to how to force the workstation nic settings:
[tt]

Workstation Switch Result

Forced Half Forced Half Works
Forced Full Forced Full Works
Auto Auto Maybe
Forced Full Auto NO
Auto Forced Full NO
Forced Half Forced Full NO
Forced Full Forced Half NO

[/tt]

If you connect with hubs, you need to set the workstations to 10-half. If you have a good Cat 5 cable plant and use switches you can set them as show in the matrix above.

2. You should consider using Netbios over TCP/IP instead of Netbui. There really is little reason for Netbui in your setting. Here is how it would work:
3. At the very least you should consider some win.ini changes to optomize Netbui. See this link:
 
thanx for the reply! however...

some more info...

All three computers (win2k server, win98 client, and another win2k server acting as client to the first mentioned win2k server) all have just tcp/ip installed.
And every computer on the switch is operating at 100.

If I network neighbourhood browse to the database folder on the server and do some writes, there's no flush requests.

If I use the db client, every write generates a bunch of flush requests.

I'm guessing it's something to do with the foxpro program?

When I start to browse, I can see that my computer (win98) negotiates a protocol, and the server agrees on NT LANMAN0.12, and says that it's capabilities support NT_STATUS codes. So why when there are errors using the program they are DOS_ERRORs? and on the win2k box they are NT_STATUS codes?

Obviously there's a lot I don't know about this stuff, but so far, it doesn't seem to be completely adding up.

Curtis

<I can supply packet dumps if it would help>
 
Let see if we can speed things up for the poor Win98 client.

I. Remove some of the security overhead.

Since NT4 SP3 the Server Message Block (SMB) filesharing protocol have supported mutual authentication (Avoid &quot;man-in-the-middle&quot; attacks) and message authentication (Avoid active message attacks).

This authentication is created by signing the messages with a security signature. This signing can degrade performance of the network, so if using a trusted network where authentication is not necessary, then one can gain about 10-15% network performance by disabling it.

First, the Server. Server Signing in WinNT4/2k/XP :
[HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \LanManServer \Parameters]
EnableSecuritySignature = 0 (Disabled = 0, Enabled = 1)
RequireSecuritySignature= 0 (Disabled = 0, Enabled = 1)

Second, your NT client. Client Signing in WinNT4 :
[HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \Rdr \Parameters]
EnableSecuritySignature = 0 (Disabled = 0, Enabled = 1)
RequireSecuritySignature

Third, your Win98 client. Configure client signing in Win98/Me :
[HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \VxD \VNetsup]
EnableSecuritySignature = 0 (Disabled = 0, Enabled = 1)
RequireSecuritySignature= 0 (Disabled = 0, Enabled = 1)

II. Increase SMB Performance

MaxCmds specifies the maximum outstanding network requests for the client to the server, which is used when negotiating a Server Message Block (SMB) connection with a server.

[HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \LanmanWorkstation \Parameters]
MaxCmds = 50 (The range is 0 - 255(NT4) - 65535(Win2k) and the default is 50, set to 100)

MaxMpxCt specifies the maximum outstanding network requests for the server per client, which is used when negotiating a Server Message Block (SMB) connection with a client. Note if the value is set beyond 125 older Windows 9x client will fail to negotiate

[HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \LanmanServer \Parameters]
MaxMpxCt = 50 (The range is 0 - 100(NT4) - 65535(Win2k) and the default is 50, set to 100 on the server)

The MaxThreads specifies how many continues threads in the network redirector is allowed to run at once. By increasing this you can increase the amount of simultanous work. Each extra execution thread will take 1 Kbyte of additional nonpaged pool memory.

[HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \LanmanWorkstation \Parameters]
MaxThreads = 30 (The range is 0-255 and the default is 17; set to 30)

The MaxCollectionCount specifies how much data there can be stored in a named pipe before a write operation is triggered. Increase this value can increase performance for applications which uses named pipes, as it will lower the amount of write operations.

[HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \LanmanWorkstation \Parameters]
MaxCollectionCount = 32 (The range is 0-65535 and the default is 16; set to 32)
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top