6

サーバーのストレステストを行うために golang http クライアントを実行しています。「dial tcp 161.170.xx.xxx:80: operation timed out」エラーが発生することがあります。

これは HTTP クライアントのタイムアウトだと思います。https://stackoverflow.com/a/16895878/198497に基づいてタイムアウト値を大きくしようと考えていますが、最初に golang のデフォルトのタイムアウト値を調べたいと思います。言語ではなくOSに依存している場合、Mac OSでこの値を確認するにはどうすればよいですか?

4

1 に答える 1

10

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.

そのため、OS に課せられた制限を考慮しない場合、デフォルトのタイムアウトは none です。

タイムアウトは で設定できますSetDeadline

デフォルトの OSX タイムアウトは (私が思うに) で確認できますsysctl net.inet.tcp

于 2013-10-31T01:43:31.743 に答える