Premise: Salam semua, sekarang saya perlu menguji pelayan tomcat untuk mengetahui di mana kesesakan permohonan itu, bagaimanapun, semasa proses ujian, cpu yang diduduki oleh sumber jvm belum mencapai 50%, dan mysql. telah diseret ke bawah.
Sekarang saya ingin mengetahui kesesakan perkhidmatan aplikasi Apabila konkurensi tinggi, CPU akan menjadi terlalu tinggi.
Kaedah yang saya fikirkan ialah: buat berbilang benang pada tahap kod, jangan baca dan tulis pangkalan data, dan biarkan CPU naik. Adakah mungkin? ?
Terima kasih~~
Secara umumnya, kesesakan aplikasi web adalah pangkalan data Jika pelayan aplikasi (sama ada Tomcat atau lain-lain) terlebih muatan, secara amnya, ia boleh diselesaikan dengan menambah pelayan.
Jika anda ingin mengurangkan kos dan mengetahui di mana kesesakan aplikasi, terdapat beberapa helah untuk ujian tekanan, seperti:
Tukar enjin storan mysql kepada
blackhole
supaya pangkalan data tidak mudah diturunkan.Jika penggunaan CPU terlalu banyak, kumpulan sambungan pangkalan data telah digunakan untuk mengehadkan penciptaan pautan. Untuk mengurangkan capaian pangkalan data, bolehkah beberapa data yang jarang dikemas kini diletakkan dalam cache seperti Redis, supaya tidak perlu mengakses pangkalan data setiap kali untuk mendapatkan semula data.
Untuk ujian tekanan mudah, saya suka menggunakan ab dalam pelayan apache Untuk yang kompleks, anda boleh mencuba ujian tekanan JMeter menjadikannya lebih mudah untuk menganalisis dan mengetahui di mana masalahnya.
Ini kelihatan seperti masalah dengan operasi pangkalan data Sebagai contoh, SQL perlu dioptimumkan, atau caching perlu ditambah untuk mengurangkan operasi pangkalan data. Tidak dapat melihat apa-apa kaitan dengan Tomcat.
Mysql tidak berfungsi. Anda perlu menyemak sama ada sql telah dioptimumkan. indeks adalah cekap. Di samping itu, adakah anda menggunakan kumpulan sambungan untuk mengawal konkurensi pangkalan data Konkurensi yang disokong oleh MySQL adalah berkaitan dengan bilangan teras CPU. Secara amnya, SQL yang perlahan boleh menurunkan pangkalan data
dengan mudahKemacetan sistem umum pada asasnya boleh diselesaikan dengan meningkatkan bilangan pelayan dan mengoptimumkan permintaan ke pangkalan data untuk ujian pada dasarnya tidak berkesan dan tidak membantu projek sebenar Kesesakan yang diperolehi bukan kesesakan sebenar anda