Rumah > pembangunan bahagian belakang > Golang > Mengapa Pelayan HTTP My Go Gagal dalam Ujian ApacheBench dengan Ralat 'Sambungan Ditolak' atau 'Operasi Tamat Masa'?

Mengapa Pelayan HTTP My Go Gagal dalam Ujian ApacheBench dengan Ralat 'Sambungan Ditolak' atau 'Operasi Tamat Masa'?

Patricia Arquette
Lepaskan: 2024-12-23 03:32:14
asal
184 orang telah melayarinya

Why is My Go HTTP Server Failing ApacheBench Tests with

Menyelesaikan Masalah Ketersambungan dengan Pelayan HTTP Go di bawah ApacheBench

Pelayan HTTP Go anda menghadapi masalah ketersambungan semasa ujian ApacheBench. ApacheBench mengembalikan ralat seperti "Sambungan ditolak" atau "Operasi tamat masa," menunjukkan masalah dengan keupayaan pelayan untuk mengendalikan permintaan masuk.

Mengenalpasti Punca Punca: Port Exhaustion

Setelah disiasat, ternyata pelayan kehabisan port sementara. macOS mempunyai julat port ephemeral lalai 49152-65535, yang tidak mencukupi untuk mengendalikan jumlah permintaan serentak yang tinggi tanpa keepalive.

Mekanisme Keletihan Port

Setiap HTTP /1.0 permintaan tanpa keepalive menggunakan port ephemeral unik pada pelayan. Apabila julat port ini habis, sistem pengendalian beratur meminta port yang tidak digunakan.

Kesan ke atas Prestasi

Setelah baris gilir port terisi, sistem pengendalian terus mendikit masuk sambungan. Akibatnya, pelanggan mungkin mengalami kegagalan sambungan atau tamat masa.

Mengurangkan Isu

Untuk mengurangkan isu, pertimbangkan pilihan berikut:

  • Gunakan HTTP/1.1 atau Keepalive (dengan ApacheBench): ApacheBench menyediakan -k pilihan untuk mendayakan HTTP/1.1 keepalive. Ini membolehkan sambungan digunakan semula berdasarkan tetapan konkurensi alat, mengurangkan penggunaan port.
  • Gunakan Penjana Beban dengan Keepalive: Penjana beban lain, seperti wrk, menyokong HTTP/1.1 dan kebolehan keepalive di luar kotak. Menggunakan alatan ini menghapuskan keperluan untuk konfigurasi keepalive manual.
  • Optimumkan Prestasi Pelayan (Pilihan): Walaupun kod pelayan anda melakukan kerja yang minimum, mengoptimumkannya boleh meningkatkan prestasi keseluruhan dan mengurangkan beban pada penjana beban dan sistem pengendalian. Pertimbangkan untuk memasukkan kerja bermakna ke dalam kod pelayan.

Atas ialah kandungan terperinci Mengapa Pelayan HTTP My Go Gagal dalam Ujian ApacheBench dengan Ralat 'Sambungan Ditolak' atau 'Operasi Tamat Masa'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan