cari

Rumah  >  Soal Jawab  >  teks badan

Sebab lonjakan CPU - Limpahan Tindanan

Saya menggunakan model epoll di bahagian bawah komunikasi Kemudian apabila epoll memproses permintaan, ia akan menyerahkannya kepada kumpulan benang untuk diproses melibatkan komunikasi rangkaian, jadi ia dikendalikan secara kasar Satu permintaan mengambil masa kurang daripada 10ms

Adakah model sedemikian menyebabkan lonjakan mendadak dalam CPU apabila trafik meningkat?

Latar belakang: Penggunaan CPU saya adalah kira-kira 75% (trafik: 20~22Mbps apabila trafik meningkat kepada 25Mbps, CPU langsung penuh); . Ini tidak seperti yang dijangkakan, kerana peningkatan trafik adalah kurang daripada 15%, tetapi CPU melonjak sebanyak 25%.

PHP中文网PHP中文网2748 hari yang lalu638

membalas semua(1)saya akan balas

  • 阿神

    阿神2017-05-16 13:29:40

    Biar saya terangkan secara ringkas pandangan saya, hanya untuk rujukan anda:
    1: Pertimbangkan dahulu sama ada permintaan anda intensif IO atau intensif CPU? IO intensif yang saya maksudkan merujuk kepada rangkaian IO yang memerlukan baca dan tulis untuk menghantar dan menerima mesej, iaitu komunikasi intensif CPU, contohnya, memerlukan pengiraan untuk menghasilkan keputusan, dan ia mengambil masa yang lama;
    2: Jika ia adalah jenis IO-intensif pertama, maka saya rasa anda tidak perlu menyerahkan semua permintaan kepada kumpulan benang untuk diproses. Jika tiada operasi IO cakera yang memakan masa seperti membaca dan menulis fail, kumpulan benang mungkin tidak akan digunakan. Dengan cara ini, model Satu gelung setiap utas sudah pasti adalah yang paling cekap, secara terang-terangan, semua membaca dan menulis (membaca dan menulis data rangkaian, bukan membaca fail) dan acara yang dijadualkan diselesaikan dalam satu EPOLL.
    3: Jika ia intensif CPU, tiada masalah menggunakan thread_pool Ia bergantung pada bilangan utas dan kod yang anda konfigurasikan.

    Soalan ini sukar dijawab tanpa persekitaran sebenar saya hanya cuba mengeluarkan beberapa idea dan menunjukkan sebarang kesilapan.

    balas
    0
  • Batalbalas