Semasa kami bekerja beberapa hari lalu, kami tiba-tiba menerima makluman bahawa Redis kami telah ranap, dan ramai orang sedang membincangkan tamat masa sambungan Redis tertentu. Saya fikir ada masalah besar pada mulanya, tetapi siapa tahu ia akan pulih selepas beberapa ketika. Pada masa itu, saya log masuk ke pelayan dan menyemak pemantauan. Lihat QPS buat kali pertama:
Anda boleh melihat bahawa QPS tidak tinggi, tetapi mengapa data tidak diperolehi untuk satu tempoh masa? Kemudian teruskan melihat penggunaan cpu Redis:
Anda dapat melihat bahawa CPU adalah tepu, yang boleh menjelaskan mengapa graf rosak Kerana redis adalah satu benang, selepas menggunakan 100% CPU, ia tidak boleh memproses arahan lain dan zabbix tidak dapat melaksanakan maklumat. . Arahan diambil daripada qps. Jadi kita sudah tahu bahawa masalah itu disebabkan oleh ketepuan CPU, jadi apa sebabnya? Kemudian teruskan menyemak untuk melihat sama ada terdapat sebarang log yang perlahan semasa tempoh penggunaan CPU yang tinggi:
Ini nampaknya tidak menjadi punca penggunaan CPU yang tinggi, jadi sukar untuk menyelesaikan masalah. Contoh ini ialah nod induk dan nod hamba. Kemudian izinkan saya melihat penggunaan cpu perpustakaan hamba:
Sial, apa yang berlaku? Kenapa CPU yang tidak digunakan oleh perpustakaan hamba juga digunakan pada 74%? Bukankah ini saintifik? Tidak mengapa, semak sama ada terdapat sebarang log lambat dari perpustakaan hamba:
Sial, apa yang sedang berlaku? Tiada siapa yang menggunakan perpustakaan hamba. Semak sama ada ia baca sahaja:
127.0.0.1:6103> CONFIG GET "slave-read-only" 1) "slave-read-only" 2) "yes" 127.0.0.1:6103>
Ia nampaknya hanya baca sahaja, yang mengelirukan saya. Akhirnya, tiba-tiba saya terfikir bahawa perpustakaan utama mempunyai kunci besar yang telah tamat tempoh pada ketika ini, dan operasi perlahan kunci tamat tempoh dalam perpustakaan utama tidak akan merekodkan log yang perlahan Tamat tempoh kunci perpustakaan hamba dipadamkan oleh perpustakaan utama yang memulakan arahan DEL. Pada masa ini, perpustakaan hamba akan merekodkan log perlahan Dari log perlahan di atas, anda boleh melihat bahawa operasi DEL maksimum ialah 335ms.
Gunakan maklumat perintah commandstats sekali lagi untuk melihat:
Atas ialah kandungan terperinci Contoh analisis penyelesaian masalah tamat masa Redis. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!