Quantcast
Channel: SCN : Discussion List - SAP Adaptive Server Enterprise (SAP ASE) for Custom Applications
Viewing all articles
Browse latest Browse all 685

What to do about Wait Event 251, 'waiting for network send to complete'

$
0
0

We have a set of C++ applications (our backend) running on Red Hat Enterprise Linux release 3 at multiple sites. These applications receive requests from GUI clients to fetch/update the data in the database via a messaging interface. In processing these messages, the applications interact with Sybase ASE using ctlib and stored procedures. We're running Sybase15.0.3 at most sites.

 

We have an application also running on the Red Hat server that queries monProcessWaits every 5 seconds and lists out any application whose wait time exceeds .5 seconds in the previous period and the events it was waiting for. Every half hour the application lists the cumulative wait time for each event that has been waited for in the previous half hour. At one particular site a representative half-hour summary is as follows:

 

Cumulative Wait Totals


Event Id: 29       waiting for regular buffer read to complete                                  Total Time: 249.1 Secs

Event Id: 31       waiting for buf write to complete before writing                            Total Time: 0.3 Secs

Event Id: 36       waiting for MASS to finish writing before changing                      Total Time: 7.2 Secs

Event Id: 41       wait to acquire latch                                                                Total Time: 1.6 Secs

Event Id: 51       waiting for last i/o on MASS to complete                                   Total Time: 7.7 Secs

Event Id: 52       waiting for i/o on MASS initated by another task                        Total Time: 2.8 Secs

Event Id: 54       waiting for write of the last log page to complete                        Total Time: 7.8 Secs

Event Id: 55       wait for i/o to finish after writing last log page                             Total Time: 52.8 Secs

Event Id: 124     wait for mass read to finish when getting page                           Total Time: 33.4 Secs

Event Id: 150     waiting for a lock                                                                     Total Time: 12 Secs

Event Id: 214     waiting on run queue after yield                                                Total Time: 23 Secs

Event Id: 215     waiting on run queue after sleep                                               Total Time: 1 Secs

Event Id: 251     waiting for network send to complete                                        Total Time: 366.4 Secs

Event Id: 260     waiting for date or time in waitfor command                               Total Time: 20.9 Secs

 

 

The most waited-for event is 251. A couple of questions in this regard:

 

  • As I understand it, this event occurs when a requesting application sends a transaction to ASE and the ASE process, after completing the request, is forced to wait while trying to send the response data back across the network to the requesting application. Is this a correct understanding?
  • My second question is what kind of configuration/tuning can I do to lessen the amount of time waiting for this event? Per Sybase, I should check the average packet size in monNetworkIO and monProcessNetIO as increasing the client app's network packet size may improve performance. What about adding additional network memory? Will that help?

 

Thanks for any help.


Viewing all articles
Browse latest Browse all 685

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>