Login ProductsSalesSupportDownloadsAbout |
Home » Technical Support » DBISAM Technical Support » Support Forums » DBISAM Client/Server » View Thread |
Messages 1 to 10 of 40 total |
Speed Issue over a VPN |
Sat, Feb 6 2010 7:40 AM | Permanent Link |
rob | Hi all.
I'm trying to use data on my office LAN from home. The application is on the Client computer at home. The firewall on the LAN is a NetGear SRXN3025 which allows 10 VPN tunnels. The Client computer is using NetGear PROSafe VPN Client software. I set up the VPN and start running the application. The DBISAM server on an office computer on the LAN with all the tables. It take approximately 2 hours to load the data. When running in the office it is about 30 seconds. I'm sitting at the Client looking at the speed on the Local Area Connection. It's about 10 bits every second. If I launch Windows Explorer I can easily browse the folders on the LAN computer and as I do so the packets throughput on Local Area Connection jump to about 50 bits per second. Why does my application not make use of the maximum available upload speec from the LAN? Thanks to anyone who can help me with this. |
Sat, Feb 6 2010 12:40 PM | Permanent Link |
"Raul" | Rob,
No solutions but couple of suggestions. I'm not sure what kind of a connection you have at home and office but even 50 bit is really, really slow - I do realize that was file share browsing and might have not maxed out the connection but still! Even assuming bytes it's still only 300bits per seconds (way slower than a dial-up modem for example). Most modern ISPs that I know usually sell connections with something like 1Mbps down / 256Kbps up (and better) so I will assume you actually have a decent connection. The thruput you're seeing is way slow and there might be a bigger problem there. Before we worry about VPN I would suggest running an internet speed test (for example at www.speedtest.net) to set a baseline. Ideally run one from home as well as from office as you will be traversing both of those (and connections in between) and you will most likely be limited by the upload speed at work (since you're downloading DBISAM data to client which is an upload from office perspective). If you have admin access to the router I would temporarily open the dbisam port to the internet (normally tcp 12005 but check your dbsrvr) and try running the client application directly (not thru VPN) to see if you get better results. Based on personal experience the SMB grade VPN routers/firewalls tend to have fairly poor VPN performance - most though still should be able to drive the VPN at 1-2Mbps (this assumes you're the only VPN connection). if you are seeing significantly faster performance directly then VPN is to blame and I have listed some suggestions below - most also apply to direct connection. Many of the "slow performance" issues can be MTU related and I don't know how NetGear VPN deals with it. You could try checking to see what your MTU size is : - start VPN - try running something like "ping -f -l 1472 <ip of internal host>" from command line - if you see "Packet needs to be fragmented but DF set" then try lower numbers (decrease by 10 for example). Google search of optimal mtu gives lot of hits and suggestions on this. Couple of other tings: -use IP and not DNS name (and definitely not windows host names) when going over VPN to server - check and make sure you are using split-tunneling if possible (so as to avoid your other network traffic going thru vpn connection) Finally doing a wireshark capture might help pinpoint issues as well - especially if there are errors or retries going on underneath on ip stack. Raul "rob" <rob@moonstone.co.uk> wrote in message news:6BC09176-487F-4487-A997-A4CF3A1F010F@news.elevatesoft.com... > Hi all. > > I'm trying to use data on my office LAN from home. The application is on > the Client computer at home. The firewall on the LAN is a NetGear > SRXN3025 > which allows 10 VPN tunnels. The Client computer is using NetGear PROSafe > VPN Client software. > > I set up the VPN and start running the application. The DBISAM server on > an office computer on the LAN with all the tables. > > It take approximately 2 hours to load the data. When running in the > office it is about 30 seconds. > > I'm sitting at the Client looking at the speed on the Local Area > Connection. It's about 10 bits every second. If I launch Windows > Explorer I can easily > browse the folders on the LAN computer and as I do so the packets > throughput on Local Area Connection jump to about 50 bits per second. > > Why does my application not make use of the maximum available upload speec > from the LAN? > > Thanks to anyone who can help me with this. __________ Information from ESET NOD32 Antivirus, version of virus signature database 4842 (20100206) __________ The message was checked by ESET NOD32 Antivirus. http://www.eset.com |
Mon, Feb 8 2010 8:37 AM | Permanent Link |
Tim Young [Elevate Software] Elevate Software, Inc. timyoung@elevatesoft.com | Rob,
<< It take approximately 2 hours to load the data. When running in the office it is about 30 seconds. >> What do you mean by "load the data" ? What is the actual process that is going on ? The easiest way to diagnose these types of issues is by using the TDBISAMSession.RemoteTrace property along with the TDBISAMSession.OnRemoteTrace event handler. You can log the requests/responses and how long they are taking in real time. The DBISAM utilities do this by using an OnRemoteTrace event handler like this: { You will find this unit in the \source subdirectory for any of the DBISAM utilities installed as part of the DBISAM Additional Software and Utilities download } uses dbisamut; procedure TMainForm.RemoteSessionRemoteTrace(Sender: TObject; TraceRecord: TTraceRecord); var TempString: string; begin with TraceRecord do begin TempString:=PadRight(DateTimeToStr(DateTime),24,' '); case EventType of teConnect: TempString:=TempString+' '+PadRight('Connect',10,' ')+ ' '+PadRight(IntToStr(ElapsedTime)+' msecs',16,' '); teReconnect: TempString:=TempString+' '+PadRight('Re-connect',10,' ')+ ' '+PadRight(IntToStr(ElapsedTime)+' msecs',16,' '); teDisconnect: TempString:=TempString+' '+PadRight('Disconnect',10,' ')+ ' '+PadRight(IntToStr(ElapsedTime)+' msecs',16,' '); teRequest: TempString:=TempString+' '+PadRight('Request',10,' ')+ ' '+PadRight(IntToStr(ElapsedTime)+' msecs',16,' ')+ ' '+PadRight(RemoteRequestName,30,' ')+ ' '+PadRight(IntToStr(RemoteRequestSize)+' bytes',16,' '); teReply: TempString:=TempString+' '+PadRight('Reply',10,' ')+ ' '+PadRight(IntToStr(ElapsedTime)+' msecs',16,' ')+ ' '+PadRight(RemoteReplyResultName,30,' ')+ ' '+PadRight(IntToStr(RemoteReplySize)+' bytes',16,' '); end; end; LogMemo.Lines.Add(TempString); end; Just put a TMemo on the form somewhere (or on a new non-modal form that is displayed when your application executes), and you will see all of the C/S activity pop up on the memo control in real-time. -- Tim Young Elevate Software www.elevatesoft.com |
Sat, Feb 13 2010 3:01 PM | Permanent Link |
rob | Well, I've managed to improve things slightly by changing the encryption method. Waiting to hear from Netgear to see if I can dump encryption for the
data altogether. Have tried your code Tim but it falls over as shown below. TempString:=TempString+' '+PadRight('Reply',10,' ')+ ' '+PadRight(IntToStr(ElapsedTime)+'msecs',16,' ')+ ' '+PadRight(RemoteReplyResultName,30,'')+ <---------Here ' '+PadRight(IntToStr(RemoteReplySize)+'bytes',16,' '); Compiler message is [Pascal Error] DMMainUnit.pas(2332): E2010 Incompatible types: 'Char' and 'string' How doI fix this? Thanks |
Sun, Feb 14 2010 4:03 AM | Permanent Link |
Roy Lambert NLH Associates Team Elevate | rob
Since IntToStr is OK I'd guess ' RemoteReplyResultName is an array of char or something similar so a cast like '+PadRight(string(RemoteReplyResultName),30,'') should work, Roy Lambert [Team Elevate] |
Tue, Feb 16 2010 12:11 PM | Permanent Link |
Tim Young [Elevate Software] Elevate Software, Inc. timyoung@elevatesoft.com | Rob,
<< Have tried your code Tim but it falls over as shown below. TempString:=TempString+' '+PadRight('Reply',10,' ')+ ' '+PadRight(IntToStr(ElapsedTime)+'msecs',16,' ')+ ' '+PadRight(RemoteReplyResultName,30,'')+ <---------Here ' '+PadRight(IntToStr(RemoteReplySize)+'bytes',16,' '); Compiler message is [Pascal Error] DMMainUnit.pas(2332): E2010 Incompatible types: 'Char' and 'string' >> The PadRight function is in the dbisamlb.pas unit, so make sure that you don't have a conflict with another PadRight implementation. -- Tim Young Elevate Software www.elevatesoft.com |
Tue, Feb 16 2010 1:56 PM | Permanent Link |
Aage Johansen | rob wrote:
> Well, I've managed to improve things slightly by changing the encryption method. Waiting to hear from Netgear to see if I can dump encryption for the > data altogether. > > Have tried your code Tim but it falls over as shown below. > > TempString:=TempString+' '+PadRight('Reply',10,' ')+ > ' '+PadRight(IntToStr(ElapsedTime)+'msecs',16,' ')+ > ' '+PadRight(RemoteReplyResultName,30,'')+ <---------Here > ' '+PadRight(IntToStr(RemoteReplySize)+'bytes',16,' '); > > Compiler message is [Pascal Error] DMMainUnit.pas(2332): E2010 Incompatible types: 'Char' and 'string' > > How doI fix this? > > Thanks > I haven't really looked into this, but is there a reason for an empty string (in the offending line) - you are using a space character (or a string of 1 <space>) elsewhere. -- Aage J. |
Wed, Feb 17 2010 12:20 PM | Permanent Link |
Tim Young [Elevate Software] Elevate Software, Inc. timyoung@elevatesoft.com | Aage,
<< I haven't really looked into this, but is there a reason for an empty string (in the offending line) - you are using a space character (or a string of 1 <space>) elsewhere. >> It's a space in the actual code, so it must have been modified when I pasted it. -- Tim Young Elevate Software www.elevatesoft.com |
Wed, Feb 24 2010 5:08 AM | Permanent Link |
Rob | Thank you everyone for your suggestions.
I'm slowly getting there. Using a memo (as suggested by Tim) to track my code I got the bottleneck as being a query retrieving data for events in a DevEx Scheduler. I've now fiddled with RemoteCompression and RemoteReadsize and am down to 50 seconds to load 69 records over the VPN. In the office it takes a fraction of a second. There are 5500 records in the table and the 69 are queried by setting dates as displayed by the calendar attached to the Scheduler. I was originally trying to load the lot which is clearly not an option. I will run the code suggested by Tim (without the space) and report back. Netgear advise there is a considerable load on the computers in respect of encryption. I'm assuming they refer to the Client machine as I cannot see how the VPN router can sub contract the encryption to the 'server' in the office. The application is unusable working at this speed. I have to get the speed up to be able to demonstrate to possible Clients that the application can be used when they have several offices with the data stored in the head office. The 'server' is a cheap HP desktop. I'm wondering if there could be any benefit in replacing it with a faster machine with RAID. That said, it works fine when the Client is on the LAN. I've ran a Broadband Speed Test at the office just now. It says the upload speed is 0.51Mbps. Could that perhaps be the problem? The office LAN says it is a 1.0 Gbps network. I'll probably get corrected here but that sounds like the LAN is 2000 times faster than the ADSL upload speed although I guess the network speed refers to a capacity that is limited by other considerations. Is anyone able to comment on this? |
Wed, Feb 24 2010 8:07 AM | Permanent Link |
Roy Lambert NLH Associates Team Elevate | Rob
>I've now fiddled with RemoteCompression and RemoteReadsize and am down to 50 seconds to load 69 records over the VPN. In the office it takes >a fraction of a second. There are 5500 records in the table and the 69 are queried by setting dates as displayed by the calendar attached to the >Scheduler. I was originally trying to load the lot which is clearly not an option. 1. How much data is there in the 69 records, 2. are you sure that's all that's being transferred, 3. I don't know the DevEx scheduler so is it possible that its getting one record, doing something, doing the next etc Something you may want to consider is generating the query results on the server, streaming those results over to the client and then loading the DevEx control from there. >The 'server' is a cheap HP desktop. I'm wondering if there could be any benefit in replacing it with a faster machine with RAID. That said, it works >fine when the Client is on the LAN. If the bottleneck's in comms upgrading the server is unlikely to help. >I've ran a Broadband Speed Test at the office just now. It says the upload speed is 0.51Mbps. Could that perhaps be the problem? The office LAN >says it is a 1.0 Gbps network. I'll probably get corrected here but that sounds like the LAN is 2000 times faster than the ADSL upload speed >although I guess the network speed refers to a capacity that is limited by other considerations. If the broadband access is ADSL then you have a fast download coupled with a not so fast upload. In may case its (upto) DownStream Connection Speed 8128 kbps UpStream Connection Speed 448 kbps pulled straight off my Netgear DB834G router So .51Mb upload isn't to bad, but your calculations are right its about 2000x slower on upload than a LAN. Even the download speed is going to be more than 100x slower. Also these speeds are "at best". If you have a straight line or guaranteed connection between the two point you should get this sort of speed, if its being routed around a bit it can be slower and also if you share the connection with others (I think BT have c50:1 contention) the actual bandwidth will be a lot lower. Roy Lambert |
Page 1 of 4 | Next Page » | |
Jump to Page: 1 2 3 4 |
This web page was last updated on Monday, April 22, 2024 at 04:13 AM | Privacy PolicySite Map © 2024 Elevate Software, Inc. All Rights Reserved Questions or comments ? E-mail us at info@elevatesoft.com |