Kami secara teratur mengalami masalah aneh dengan jaringan di server khusus kami. Ini menjalankan Windows Server 2012 R2 x64 pada Xeon E5620 dengan 16 GB RAM dan adaptor jaringan Intel 82575EB.
Harap dicatat bahwa kami sudah disetel HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
nilai-nilai kunci TcpTimedWaitDelay
dan MaxUserPort
30 dan 65.530 masing-masing.
Secara acak, situs web kami berhenti merespons, alasannya mereka tidak dapat terhubung ke database lokal. Ini sekitar 2 minggu uptime ketika masalah ini mulai terjadi. Log sistem mulai mendapatkan peringatan TCPIP 4227 dan 4231. Ini menyatakan "Permintaan untuk mengalokasikan nomor port sementara dari ruang port TCP global telah gagal karena semua port tersebut sedang digunakan.".
Jika saya lari
Get-Counter -Counter \TCPv4\*
atau
Get-Counter -Counter \TCPv6\*
atau
netstat -abn | find /c ":"
Saya selalu mendapatkan nilai wajar koneksi 500-1500, yang bahkan tidak mendekati batas 65K.
Selain itu, "localhost" berhenti menyelesaikan ke :: 1 secara lokal, kembali ke 127.0.0.1.
Hanya mesin paksa restart yang dapat menyelesaikan situasi.
Mungkinkah itu masalah adaptor jaringan?
PEMBARUAN 1
Itu terjadi lagi dan tampaknya telah diselesaikan ketika saya me-restart server email. Anehnya, semua penghitung menunjukkan ~ 1000 koneksi dengan ~ 500 sedang aktif saat ini, dan masih kesalahan 10055 socket ketika mencoba untuk terhubung ke database yang tidak ada hubungannya dengan server mail.
UPDATE 2 Ini aneh, tetapi restart setiap hari dari layanan surat memperbaiki masalah sepenuhnya.
sumber
Jawaban:
Saya memiliki masalah yang sama dengan kumpulan port TCP / IP yang habis pada WinSvr 2012R2 x64 selama hampir 1 bulan di mana server berhenti menerima koneksi TCP dan baru. Jadi saya bermain dengan nilai registri dan ini stabil untuk saya:
Hasilnya sama seperti milik Anda. Saya pikir Anda harus mempertimbangkan untuk mengaudit perilaku Anda terhadap kinerja aplikasi / skrip Anda. Jika semuanya baik-baik saja dan tidak ada yang membantu, maka Anda dapat mencoba meletakkan server proxy sebelum server aplikasi web Anda, buat 2 node dengan server web (IIS, Apache, ...) yang akan berbagi konten statis yang sama dan mengakses database yang sama pada saat yang sama waktu (jika Anda memiliki sumber daya yang cukup di perusahaan Anda).
Mungkin artikel ini akan membantu Anda dalam beberapa cara: http://blogs.technet.com/b/tristank/archive/2008/03/11/maxuserport-what-it-is-what-it-does-when-it- s-important.aspx
sumber
MaxUserPort
masih berfungsi di 2012? Saya pikir pada tahun 2012 Anda harus melakukannya melalui netsh. misal:netsh int ipv4 set dynamicport tcp start=25535 num=40000
Selain pengaturan driver Tcpip, rentang port TCP sementara dikelola di Windows Server menggunakan perintah netsh ( sumber ).
Anda dapat melihat rentang port dinamis dengan perintah berikut:
netsh int ipv4 show dynamicport tcp
netsh int ipv4 show dynamicport udp
netsh int ipv6 show dynamicport tcp
netsh int ipv6 show dynamicport udp
Untuk mengubah rentang port, gunakan perintah ini:
netsh int <ipv4|ipv6> set dynamic <tcp|udp> start=number num=range
Sebagai contoh:
netsh int ipv4 set dynamicport tcp start=49152 num=16384
Pengaturan (mulai = 49152 num = 16384 ) juga merupakan default pada Windows Server 2008 dan seterusnya.
sumber
Memiliki masalah yang sama pada Windows Server 2016 ini menjalankan sejumlah besar tes Selenium menggunakan chromewebdriver. Skrip PS ini akan secara otomatis mengonfigurasi pengaturan @Myke yang dibagikan di atas. The
shutdown
perintah ditambahkan karena reboot diperlukan untuk perubahan TCP stack.Meningkatkan Ukuran Pool untuk Ephemeral TCP Ports
Ini adalah pesan kesalahan yang kami terima saat
Webdriver.Quit()
memberi tahu kami bahwa alamat TCP sedang digunakan.sumber
Sudahkah Anda memastikan bahwa Anda tidak membocorkan objek koneksi database? Anda harus menutup setiap koneksi basis data yang dibuka, baik secara eksplisit (dengan coba-akhirnya) atau dengan menggunakan {}. Ini adalah masalah umum yang ASP tidak akan langsung memberi tahu Anda.
sumber