GNU/Linux >> Belajar Linux >  >> Linux

Menjalankan lsof -i menunjukkan banyak koneksi di CLOSE_WAIT ? Haruskah saya khawatir

(Saya akan mengedit jawaban mikegrb, tetapi memutuskan bahwa saya terlalu banyak memotongnya)

CLOSE_WAIT berarti persis seperti yang dikatakannya - kernel sedang menunggu proses lokal untuk menutup deskriptor file sebelum menghapus entri. Koneksi TCP telah benar-benar diruntuhkan dan ujung terjauh mungkin mendapat kesan bahwa koneksi tersebut finito, tetapi ujung Anda menahan sesuatu.

Satu-satunya kekhawatiran adalah bahwa banyak entri CLOSE_WAIT menghabiskan memori kernel dan entri tabel deskriptor file, yang dapat menjadi masalah jika jumlahnya sangat banyak. Jika entri yang Anda lihat bersifat sementara, mungkin Anda hanya bersepeda melalui banyak koneksi TCP, dan Anda melihat sebagian kecil darinya dalam waktu singkat antara saat koneksi ditutup dan proses menutup deskriptor file. Di sisi lain, jika mereka permanen (port dan alamat IP tidak berubah dari waktu ke waktu) maka ada deskriptor yang bocor dan perlu diperbaiki sehingga selalu menutup fds ketika selesai dengan mereka. Seperti yang dikatakan mikegrb, versi yang lebih baru mungkin sudah memperbaiki masalah, jadi pertanyaan di milis yang relevan atau pemeriksaan log perubahan mungkin diperlukan.


Status CLOSE_WAIT berarti ujung yang lain mengirim segmen FIN untuk menutup koneksi. Koneksi masih agak mapan. Ini dalam mode yang dapat Anda anggap sebagai setengah dupleks, memungkinkan ujung ini mengosongkan buffer apa pun, mengirimkan bit data terakhir ke ujung yang meminta koneksi ditutup sebelum menutup koneksi dari ujung ini.

Jika Anda memiliki banyak koneksi yang tinggal di CLOSE_WAIT itu berarti proses yang bertanggung jawab tidak menutup soket setelah masuk ke CLOSE_WAIT. Anda dapat menggunakan tcpdump, atau alat perekam lalu lintas jaringan lainnya, untuk melihat paket.

Lihat juga proses yang bertanggung jawab. Karena penasaran apa proses yang bertanggung jawab? Ini mungkin memiliki versi tetap yang lebih baru atau mungkin sudah waktunya untuk mengajukan laporan bug;)


Linux
  1. Menjalankan notifikasi-kirim sebagai root

  2. Daftarkan tab cron yang sedang berjalan dan hentikan

  3. Pengguna apa yang harus menjalankan apache dan PHP? Izin apa yang harus dimiliki file /var/www?

  1. Koneksi penerusan Putty, CygwinX, dan X11 ditolak

  2. Bagaimana saya hanya mendapatkan PID, tanpa informasi tambahan, dari proses yang berjalan pada port 3000?

  3. Bagaimana cara menghitung max_connections untuk PostgreSQL dan default_pool_size untuk pgbouncer?

  1. Kelola koneksi jaringan dari baris perintah Linux dengan nmcli

  2. Memeriksa Skrip Apakah Berjalan?

  3. 7 Contoh Perintah lsof di Linux