(artikel ini pada asalnya diterbitkan oleh pengkomputeran ampere)
Aplikasi anda berjalan pada contoh awan atau pelayan baru (atau SUT, sistem di bawah ujian), anda dapati masalah prestasi, atau anda ingin memastikan prestasi optimum di bawah sumber sistem yang ada. Artikel ini membincangkan beberapa soalan asas yang perlu anda tanya dan cara untuk menjawabnya.
Prasyarat: Memahami mesin maya atau pelayan anda
anda perlu mengetahui sumber sistem yang ada sebelum memulakan penyelesaian masalah atau melakukan latihan analisis prestasi. Prestasi peringkat sistem biasanya turun ke empat komponen dan interaksi mereka - CPU, memori, rangkaian, dan cakera. Lihat juga artikel cemerlang Brendan Gregg "Analisis Prestasi Linux: Panduan Hasil Pantas Milisaat 60000", titik permulaan yang hebat untuk menilai isu -isu prestasi dengan cepat.Artikel ini menerangkan cara memahami masalah prestasi dengan lebih mendalam.
Sahkan Jenis CPU
Jalankan arahan, yang akan memaparkan jenis CPU, kekerapan CPU, bilangan teras, dan maklumat berkaitan CPU yang lain: $lscpu
<code>ampere@colo1:~$ lscpu Architecture: aarch64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 160 On-line CPU(s) list: 0-159 Thread(s) per core: 1 Core(s) per socket: 80 Socket(s): 2 NUMA node(s): 2 Vendor ID: ARM Model: 1 Model name: Neoverse-N1 Stepping: r3p1 CPU max MHz: 3000.0000 CPU min MHz: 1000.0000 BogoMIPS: 50.00 L1d cache: 10 MiB L1i cache: 10 MiB L2 cache: 160 MiB NUMA node0 CPU(s): 0-79 NUMA node1 CPU(s): 80-159 Vulnerability Itlb multibit: Not affected Vulnerability L1tf: Not affected Vulnerability Mds: Not affected Vulnerability Meltdown: Not affected Vulnerability Mmio stale data: Not affected Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl Vulnerability Spectre v1: Mitigation; __user pointer sanitization Vulnerability Spectre v2: Mitigation; CSV2, BHB Vulnerability Srbds: Not affected Vulnerability Tsx async abort: Not affected Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp ssbs </code>
Sahkan konfigurasi memori
Jalankan perintah, yang akan memberikan maklumat mengenai memori fizikal dan jumlah memori swap (termasuk pecahan penggunaan memori). Jalankan penanda aras multichase untuk menentukan latensi, jalur lebar memori, dan beban latency misalnya/sut: $free
<code>ampere@colo1:~$ free total used free shared buff/cache available Mem: 130256992 3422844 120742736 4208 6091412 125852984 Swap: 8388604 0 8388604 </code>
Menilai keupayaan rangkaian
Jalankan perintah, yang akan memberikan maklumat mengenai tetapan perkakasan kad NIC. Ia juga digunakan untuk mengawal pemacu peranti rangkaian dan tetapan perkakasan. Jika anda menjalankan beban kerja dalam model pelayan klien, lebih baik memahami jalur lebar dan latensi antara klien dan pelayan. Untuk menentukan jalur lebar, ujian IPERF3 mudah mencukupi, dan untuk latensi ujian ping mudah dapat memberikan nilai ini. Dalam tetapan pelanggan-pelayan, ia juga disyorkan untuk memastikan kiraan hop rangkaian minimum. TracerOute adalah arahan diagnostik rangkaian yang memaparkan penghalaan dan mengukur kelewatan penghantaran paket di seluruh rangkaian: $ethtool
<code>ampere@colo1:~$ ethtool -i enp1s0np0 driver: mlx5_core version: 5.7-1.0.2 firmware-version: 16.32.1010 (RCP0000000001) expansion-rom-version: bus-info: 0000:01:00.0 supports-statistics: yes supports-test: yes supports-eeprom-access: no supports-register-dump: no supports-priv-flags: yes> </code>
Memahami infrastruktur penyimpanan
Sebelum mula menjalankan beban kerja, adalah penting untuk memahami fungsi cakera. Memahami throughput dan latency cakera dan sistem fail akan membantu anda merancang dan merancang beban kerja anda dengan cekap. Fleksibel I/O (atau "FIO") adalah alat yang ideal untuk menentukan nilai -nilai ini.
Sekarang masukkan sepuluh soalan teratas
1.
Imej berikut menunjukkan output contoh arahan
.
<code>ampere@colo1:~$ lscpu Architecture: aarch64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 160 On-line CPU(s) list: 0-159 Thread(s) per core: 1 Core(s) per socket: 80 Socket(s): 2 NUMA node(s): 2 Vendor ID: ARM Model: 1 Model name: Neoverse-N1 Stepping: r3p1 CPU max MHz: 3000.0000 CPU min MHz: 1000.0000 BogoMIPS: 50.00 L1d cache: 10 MiB L1i cache: 10 MiB L2 cache: 160 MiB NUMA node0 CPU(s): 0-79 NUMA node1 CPU(s): 80-159 Vulnerability Itlb multibit: Not affected Vulnerability L1tf: Not affected Vulnerability Mds: Not affected Vulnerability Meltdown: Not affected Vulnerability Mmio stale data: Not affected Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl Vulnerability Spectre v1: Mitigation; __user pointer sanitization Vulnerability Spectre v2: Mitigation; CSV2, BHB Vulnerability Srbds: Not affected Vulnerability Tsx async abort: Not affected Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp ssbs </code>
<code>ampere@colo1:~$ free total used free shared buff/cache available Mem: 130256992 3422844 120742736 4208 6091412 125852984 Swap: 8388604 0 8388604 </code>
Top Application Linux boleh digunakan untuk mengetahui berapa lama pengguna dan masa kernel dimakan, seperti yang ditunjukkan di bawah.
mpstat
4.
adalah alat yang berharga. $free
juga merupakan alat yang berharga untuk memantau penggunaan memori, terutamanya jika anda secara aktif bertukar memori dengan memori maya. $vmstat
free
. Perintah Linux free
memaparkan statistik memori dan pertukaran.
. Perintah ini memberikan pandangan peringkat tinggi memori sistem, kesihatan, termasuk memori yang sedia ada dan statistik paging. vmstat
Perintah
memaparkan memori aktif yang ditukar (paging). $vmstat
SWPD: Jumlah memori ditukar
5.
frekuensi jam dram asas
Nota: Kadar pecah telah didapati tidak mampan dan nilai yang dilaksanakan mungkin sedikit lebih kecil daripada nilai yang dikira.
6. Adakah beban kerja saya menggunakan semua CPU dengan cara yang seimbang?
f2 bagaimana untuk mengkonfigurasi untuk mencapai nilai maksimum (kiraan teras htop bermula pada "1" dan bukannya "0"):
lajur termasuk: seperti rangkaian, cakera juga boleh menjadi sebab prestasi aplikasi yang lemah. Apabila mengukur prestasi cakera, kita melihat metrik berikut: Peraturan yang baik ialah apabila anda memilih pelayan/contoh untuk aplikasi anda, anda mesti terlebih dahulu menanda aras prestasi I/O cakera supaya anda boleh mendapatkan puncak atau "had atas" prestasi cakera dan dapat menentukan cakera sama ada prestasi memenuhi keperluan permohonan. Fleksibel I/O adalah alat yang ideal untuk menentukan nilai -nilai ini. selepas aplikasi berjalan, anda boleh menggunakan
digunakan untuk memantau sumber sistem, termasuk statistik CPU, statistik cakera, statistik rangkaian, statistik paging, dan statistik sistem. Untuk memantau penggunaan cakera, gunakan pilihan -D. Pilihan ini memaparkan jumlah operasi membaca (baca) dan menulis (writ) pada cakera.
Pada sistem NUMA, semakin besar jarak antara pemproses dan bank ingatannya, semakin perlahan pemproses akan mengakses bank memori itu. Untuk aplikasi sensitif prestasi, sistem operasi sistem harus memperuntukkan memori dari bank memori terdekat. Untuk memantau peruntukan memori sistem atau proses dalam masa nyata, memaparkan statistik semasa untuk peruntukan memori.
Perintah juga boleh digunakan untuk melihat pengedaran NUMA suatu proses.
uid: Nombor ID pengguna sebenar tugas yang dipantau Sila hubungi pasukan jualan pakar kami untuk perkongsian atau belajar bagaimana untuk mengakses sistem Ampere melalui program Akses Pemaju kami. $htop
, pergi ke lajur, dan tambah pemproses di bawah lajur yang tersedia. "ID CPU" yang kini digunakan oleh setiap proses akan muncul di bawah lajur "CPU".
, lihat "Bagaimana saya menghabiskan masa dalam permohonan saya berbanding dengan masa kernel?" $htop
untuk memaparkan CPU/CORE:
$htop
$mpstat
$mpstat
7. $mpstat
dan
dapat membantu anda memantau penggunaan rangkaian dan mengenal pasti sebarang kesesakan sistem kerana rangkaian. $dstat
$nicstat
. Perintah ini digunakan untuk memantau sumber sistem, termasuk statistik CPU, statistik cakera, statistik rangkaian, statistik paging, dan statistik sistem. Untuk memantau penggunaan rangkaian, gunakan pilihan -n.
dstat
nicstat
8.
$iostat
dan $dstat
untuk memantau penggunaan sumber cakera dalam masa nyata. iostat
memaparkan statistik I/O untuk setiap cakera, menyediakan metrik untuk pencirian beban kerja, penggunaan, dan ketepuan.
tps: bilangan urus niaga sesaat
dstat
9. Akses memori yang tidak konsisten (NUMA) adalah reka bentuk memori komputer untuk multiprocessing, di mana masa akses memori bergantung kepada lokasi memori berbanding dengan pemproses. Di bawah NUMA, pemproses boleh mengakses memori tempatan sendiri lebih cepat daripada memori bukan tempatan (memori tempatan pemproses atau memori lain yang dikongsi antara pemproses). Manfaat NUMA adalah terhad kepada beban kerja, terutama pada pelayan, di mana data sering berkait rapat dengan tugas atau pengguna tertentu.
$numastat
adalah alat yang hebat. numastat
menyediakan statistik untuk sistem akses memori (NUMA) yang tidak konsisten. Sistem ini biasanya sistem dengan pelbagai slot CPU.
$numastat
numa_hit: memperuntukkan memori pada node NUMA yang diharapkan
numa_miss dan numa_foreign Kedua -duanya menunjukkan peruntukan memori bukan pada node NUMA pilihan. Sebaik -baiknya, nilai numa_miss dan numa_foreign harus disimpan minimum, kerana nilai yang lebih tinggi dapat menyebabkan prestasi I/O memori yang lemah. $numastat -p <process></process>
10. Apabila menjalankan aplikasi pada sistem/contoh, anda akan berminat untuk memahami apa yang dilakukan oleh aplikasi dan sumber aplikasi yang digunakan pada CPU.
adalah alat baris arahan yang memantau setiap proses individu yang berjalan pada sistem. $pidstat
pidstat
Alat Linux ini memecah penggunaan CPU dengan proses atau benang, termasuk masa pengguna dan masa sistem. Perintah ini juga boleh melaporkan statistik IO untuk proses (-d pilihan).
PID: Nombor pengenalan tugas yang dipantau
juga boleh dijalankan untuk mengumpul data mengenai proses tertentu.
Atas ialah kandungan terperinci 10 Soalan Utama Ketika Berlari di Contoh Ampere Altra. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!