我正在运行golang http客户端以对服务器进行压力测试。有时我收到错误“拨号tcp 161.170.xx.xxx:80:操作超时”错误。
我认为这是HTTP客户端超时。我正在考虑基于增加超时值,但是我想先找出golang中的默认超时值是多少。如果它取决于操作系统而不是语言,那么如何在Mac OS中检查此值?
根据http://golang.org/pkg/net/#Dialer:
type Dialer struct { // Timeout is the maximum amount of time a dial will wait for // a connect to complete. If Deadline is also set, it may fail // earlier. // // The default is no timeout. // // With or without a timeout, the operating system may impose // its own earlier timeout. For instance, TCP timeouts are // often around 3 minutes.
因此,默认超时(不考虑操作系统施加的限制)为无。
可以使用设置超时SetDeadline。
SetDeadline
我认为默认的OSX超时可以通过进行检查sysctl net.inet.tcp。
sysctl net.inet.tcp