Kami melihat perangkat lunak kami berperilaku tidak biasa di salah satu pelanggan di mana sedang dijalankan di dalam mesin virtual Windows 2008. Tuan rumahnya adalah VMWare ESX Server.
Masalah terbesar yang saya lihat adalah proses kami menjatuhkan koneksi socket atau waktu koneksi socket habis. Beberapa proses kami berkomunikasi satu sama lain melalui soket TCP. Dalam beberapa kasus kami membuat koneksi soket ke sistem jarak jauh (misalnya, WMI, JDBC).
Saya yakin bahwa VM kekurangan sumber daya. Kami tidak memiliki akses ke ESX admin / dasbor kinerja. Saya juga telah belajar bahwa angka apa pun yang disediakan oleh perfmon atau task manager di dalam host VM bukan indikasi sebenarnya dari kesehatan OS host.
Saya bisa menulis sebuah program yang melakukan banyak matematika floating point dan mencetak waktu yang dibutuhkan. Kemudian bandingkan waktu itu dengan yang sama yang diperoleh pada VM yang berbeda atau kotak Windows nyata.
Pendekatan ini cukup bagi kita untuk dapat menentukan apakah akar penyebabnya memang kinerja VM. Namun akan jauh lebih mudah untuk meyakinkan pelanggan jika ada cara atau alat standar untuk melakukan ini.
Apakah ada satu?