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
Bagi memasang nginx dalam persekitaran lain, anda boleh menggunakan
find / -name nginx.conf
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;
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
atau terus memaparkan bilangan CPU logik:
cat /proc/cpuinfo |grep "processor"|wc -l
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;
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;
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
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;
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;
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;
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;
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
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!