Bagaimana untuk menetapkan bilangan proses pelayan Nginx dan cara menggunakan CPU berbilang teras

WBOY
Lepaskan: 2023-05-12 09:46:05
ke hadapan
2097 orang telah melayarinya

fail konfigurasi nginx nginx.conf

Mula-mula anda perlu mencari fail konfigurasi nginx nginx.conf untuk melaksanakan operasi berikut di bawah konfigurasi lalai pemasangan satu klik lnmp pakej, nginx.conf Disimpan dalam

/usr/local/nginx/conf/nginx.conf
Salin selepas log masuk

Bagi memasang nginx dalam persekitaran lain, anda boleh menggunakan

find / -name nginx.conf
Salin selepas log masuk

untuk mencari laluan storan fail konfigurasi.

tetapan nombor proses_pekerja nginx

dokumen konfigurasi nginx nginx.conf boleh menetapkan worker_processes untuk menukar bilangan proses nginx mengikut S&J ini bilangan pekerja nginx memproses Ia ditunjukkan bahawa adalah disyorkan bahawa bilangan proses nginx worker_processes ditetapkan kepada 1 kerana:

Tetapi tujuan kami adalah untuk memperuntukkan proses worker_processes yang berbeza untuk dijalankan pada CPU pada teras yang berbeza, jadi berdasarkan linode penyedia vps semasa saya Konfigurasi 512 sebagai contoh, server hen mempunyai 8 cpu logik, tetapi sebagai pengguna saya hanya mendapat 4 cpu logik, jadi di sini saya menetapkannya untuk menjalankan 3 proses worker_processes, sebabnya ialah secara lalai, program lain akan berada di yang pertama. Berjalan pada 1 CPU logik (cpu0), agar tidak menjejaskan atur cara lain, saya akan memperuntukkan 3 proses ini untuk dijalankan pada 3 CPU logik lain (cpu1, cpu2, cpu3):

worker_processes 3;
Salin selepas log masuk

Secara amnya Dikatakan bahawa jika anda mempunyai beberapa CPU logik, adalah wajar untuk menetapkan beberapa worker_processes Walau bagaimanapun, ia tidak masuk akal jika terdapat lebih daripada 8 worker_processes Sebabnya telah disebutkan dalam perenggan di atas.

Anda boleh menggunakan arahan ini untuk melihat situasi CPU semasa:

cat /proc/cpuinfo
Salin selepas log masuk

atau terus memaparkan bilangan CPU logik:

cat /proc/cpuinfo |grep "processor"|wc -l
Salin selepas log masuk

tetapan nginx worker_cpu_affinity

Menurut maklumat di wiki nginx:

worker_cpu_affinity tidak didayakan secara lalai Menurut contoh, kita boleh melihat bahawa 0001 0010 0001st masing-masing mewakili 1. , 2, 3 dan 4 CPU logik, jadi kita boleh menetapkan 0010 0100 1000 untuk mengikat 3 proses ke CPU logik ke-2, ke-3 dan ke-4 masing-masing:

worker_processes 3;
worker_cpu_affinity 0010 0100 1000;
Salin selepas log masuk

Pada masa yang sama, mengikut contoh Kita juga dapat melihat bahawa worker_cpu_affinity boleh mengikat proses yang sama kepada dua cpu logik:

worker_processes 2;
worker_cpu_affinity 0101 1010;
Salin selepas log masuk

0101 ialah cpu logik pertama dan ke-3, 1010 ialah cpu ke-2 dan ke-4 pada cpu logik.
Pendayaan dan ujian peruntukan proses nginx kepada tetapan CPU berbilang teras

Simpan fail nginx.conf dan muat semula fail konfigurasi nginx:

/usr/local/nginx/sbin/nginx -s reload
Salin selepas log masuk

Pasang apache pada mesin lain Jalankan ab di bawah hos untuk menguji:
ab -n 20000 -k http://www.1990y.com/p.php
Anda boleh menguji halaman php yang memerlukan pertanyaan mysql, atau anda boleh menguji statik imej Atau halaman.

Pada pelayan yang diuji, anda boleh menggunakan bahagian atas untuk melihat situasi pelayan semasa, dan kemudian tekan 1 untuk memaparkan penggunaan setiap CPU logik.

Dayakan penggunaan berbilang teras cpu

Tetapan peraturan
(1) Berapa banyak teras cpu ada, terdapat beberapa digit, 1 bermakna teras didayakan , 0 bermakna penutupan kernel
(2) Maksimum 8 proses_pekerja boleh didayakan Jika terdapat lebih daripada 8 pekerja, prestasi tidak akan bertambah baik, dan kestabilan akan menjadi lebih rendah, jadi 8 proses sudah cukup

.

Contoh demonstrasi
CPU dua teras, mulakan dua proses

  worker_processes 2; 
  worker_cpu_affinity 01 10;
Salin selepas log masuk

01 bermakna teras cpu pertama didayakan, 10 bermakna teras cpu kedua didayakan
worker_cpu_affinity 01 10; bermakna Dua proses dibuka, proses pertama sepadan dengan teras cpu pertama, dan proses kedua sepadan dengan teras cpu kedua

Cpu dua teras, lapan proses dibuka

  worker_processes 8; 
  worker_cpu_affinity 01 10 01 10 01 10 01 10;
Salin selepas log masuk

8 proses dibuka, yang masing-masing sepadan dengan pembukaan 2 teras

CPU 8-teras, dan 8 proses dibuka

  worker_processes 8; 
  worker_cpu_affinity 10000000 01000000 00100000 00010000 00001000 00000100 00000010 00000001;
Salin selepas log masuk

00000001 bermakna membuka teras cpu pertama, 00000010 bermakna membuka yang kedua teras cpu, dan seterusnya

cpu 8 teras, mulakan 2 proses

  worker_processes 2; 
  worker_cpu_affinity 10101010 01010101;
Salin selepas log masuk

10101010 bermakna memulakan teras ke-2, ke-4, ke-6 dan ke-8, 01010101 bermakna bermula 1,3,5, 7 teras
2 proses sepadan dengan 8 teras

Mulakan semula nginx
Selepas konfigurasi selesai, anda perlu memulakan semula perkhidmatan nginx

  /etc/init.d/nginx restart
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk menetapkan bilangan proses pelayan Nginx dan cara menggunakan CPU berbilang teras. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan