When performing backups, or restores, socket errors are being produced.

Article:TECH7576  |  Created: 2009-01-17  |  Updated: 2013-10-24  |  Article URL http://www.symantec.com/docs/TECH7576
Article Type
Technical Solution


Environment

Issue



When performing backups, or restores, socket errors are being produced.


Error



Status codes 13, 14, 23, 24, 25 may occur.
13 = file read failed,
14 = file write failed,
23 = socket read failed,
24 = socket write failed,
25 = cannot connect on socket


Solution



Possibly the NetBackup server is getting a lot of traffic from clients; therefore, sockets are not becoming free soon enough to satisfy the demand.
 
Check the number of processes waiting for a server socket:   
     netstat -a | grep TIME_WAIT | wc -l

 
To view the current timeout setting--
 
For Solaris 2.6 or previous use the following command:
ndd -get /dev/tcp tcp_close_wait_interval

For Solaris 7 or above use the following command:
ndd -get /dev/tcp tcp_time_wait_interval

For HP-UX 11 use the following command:
ndd -get /dev/tcp tcp_time_wait_interval
 (NOTE:  The equivalent command on HP-UX 10 is "nettune" instead of "ndd".)

These commands will produce a large number, like the default 240000 (value is in milliseconds, so 240 seconds or 4 minutes).  This is the amount of time to wait after a socket is closed before it can be reused.  In most cases this can be shortened to about 1 second (1000) and may alleviate the problem.
 
Note:   Best practice for Sun Solaris:  tcp_close_wait_interval of less than 60000 is not supported by SUN.
In some conditions, less than 60000 could cause a very rare chance of possible data loss for NetBackup servers.  Therefore, it is a best practice use the 60000 settings vs. the 240000 default.

 
The command to set it to 10000 on Solaris 2.6 and previous versions is:
ndd -set /dev/tcp tcp_close_wait_interval 10000

The command to set it to 10000 on Solaris 7 and later versions is:
ndd -set /dev/tcp tcp_time_wait_interval 10000

The default is 60000 on Solaris 10
To set it to 10000 and to hold the value after reboot:
touch /etc/rc2.d/S99networktuning
chmod 744 /etc/rc2.d/S99networktuning
ln -s /etc/rc2.d/S99networktuning /etc/init.d/network_ndd
echo "/usr/sbin/ndd -set /dev/tcp tcp_time_wait_interval 10000" > /etc/init.d/network_ndd
/etc/rc2.d/S99networktuning  start
/usr/sbin/ndd -get /dev/tcp tcp_time_wait_interval
10000
 
The command to set it to 1000 on HP-UX 11 is:
ndd -set /dev/tcp tcp_time_wait_interval 10000

The "ndd" command makes the change immediately, without a need for a reboot.  This setting will go back to default after a reboot. To make it set to this value after each reboot, the command can be added to the appropriate TCP/IP startup script. On Solaris 7-9, this is /etc/rc2.d/S69inet or on HP-UX 11 see /etc/rc.config.d/nddconf for examples of how to set it.

To tune the tcp_close_wait_interval on AIX, adjust the following two parameters:

Parameter: tcp_keepidle
Purpose: Total length of time to keep an idle TCP connection alive
Values: Default: 14400 (half-seconds) = 2 hours, Range: any positive integer
Display: "# no -a" or "#no -o tcp_keepidle
Change: # no -o tcp_keepidle=New_value
Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding command to /etc/rc.net

Parameter: tcp_keepintvl
Purpose: Interval between packets sent to validate the TCP connection
Values: 150 half-seconds, 75 seconds
Display: no -a or no -o tcp_keepintvl
Change: no -o tcp_keepintvl=New_value
Change takes effect immediately. Change is effective until next boot. Permanent change is made by adding command to /etc/rc.net
 



Legacy ID



230050


Article URL http://www.symantec.com/docs/TECH7576


Terms of use for this information are found in Legal Notices