10 Soalan Utama Ketika Berlari di Contoh Ampere Altra
analisis prestasi sistem ampere: Sepuluh soalan dan jawapan utama
(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.
Salah satu komponen utama jumlah kos pemilikan ialah CPU. Oleh itu, adalah wajar memahami kecekapan penggunaan CPU. CPU terbiar biasanya bermakna terdapat kebergantungan luaran, seperti menunggu cakera atau akses rangkaian. Ia sentiasa disyorkan untuk memantau penggunaan CPU dan periksa bahawa penggunaan teras adalah walaupun.
Imej berikut menunjukkan output contoh arahan
.
CPU moden Gunakan keadaan P untuk menyesuaikan kekerapan dan voltan operasi mereka untuk mengurangkan penggunaan kuasa CPU apabila frekuensi yang lebih tinggi tidak diperlukan. Ini dipanggil voltan dinamik dan skala kekerapan (DVFS), dan diuruskan oleh sistem operasi. Di Linux, keadaan P diuruskan oleh subsistem CPUFREQ, yang menggunakan algoritma yang berbeza (dipanggil pengawal selia) untuk menentukan kekerapan CPU berjalan. Secara umum, untuk aplikasi sensitif prestasi, adalah yang terbaik untuk memastikan anda menggunakan pengawal selia prestasi, dan arahan berikut menggunakan utiliti CPUpower untuk mencapai matlamat ini. Ingat bahawa penggunaan kekerapan CPU harus dijalankan bergantung pada beban kerja:
<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>
Kadang -kadang perlu untuk mengetahui sama ada peratusan masa CPU dimakan di ruang pengguna atau dalam masa istimewa (iaitu ruang kernel). Masa kernel yang lebih tinggi mungkin munasabah untuk kategori beban kerja tertentu (seperti beban kerja mengikat rangkaian), tetapi juga mungkin menunjukkan masalah.
Top Application Linux boleh digunakan untuk mengetahui berapa lama pengguna dan masa kernel dimakan, seperti yang ditunjukkan di bawah.
- - Semak statistik setiap CPU dan periksa hotspot individu/CPU sibuk. Ini adalah alat statistik multiprosesor yang melaporkan statistik untuk setiap CPU (-p pilihan)
mpstat
CPU: ID CPU logik, atau maklumat ringkasan untuk semua CPU - %usr: masa pengguna, tidak termasuk %bagus
- %bagus: Masa pengguna untuk proses dengan keutamaan yang lebih rendah
- %sys: sistem sistem
- %Iowait: io tunggu
- %IRQ: Penggunaan CPU Interrupt Perkakasan
- %Soft: Perisian Penggunaan CPU Interrupt
- %mencuri: masa yang digunakan untuk melayani penyewa lain
- %Tetamu: Masa CPU Dibelan dalam Mesin Maya Pelanggan
- %gnice: masa CPU untuk menjalankan pelanggan dengan keutamaan yang lebih rendah
- %IDLE: Masa Percuma
4.
Apabila anda menguruskan pelayan, anda mungkin perlu memasang aplikasi baru, atau anda mungkin mendapati bahawa aplikasi telah mula melambatkan. Untuk menguruskan sumber sistem dan memahami memori sistem dan penggunaan memori sistem yang telah dipasang sistem, arahan
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 Linuxfree
memaparkan statistik memori dan pertukaran. -
. Perintah ini memberikan pandangan peringkat tinggi memori sistem, kesihatan, termasuk memori yang sedia ada dan statistik paging.
vmstat
Perintahmemaparkan memori aktif yang ditukar (paging).
$vmstat
Perintah ini mencetak ringkasan status semasa. Lajur lalai ke kilobytes, iaitu:
SWPD: Jumlah memori ditukar
- Percuma: Memori Tersedia
- buff: Memori dalam cache buffer
- cache: Memori di halaman cache
- si: bertukar dalam ingatan (paging)
- jadi: menukar memori (paging)
- Jika Si dan begitu tidak sifar, sistem berada di bawah tekanan memori dan memori swap ke peranti swap.
5.
Untuk memahami lebar jalur memori yang cukup, mula -mula dapatkan nilai "jalur lebar memori maksimum" sistem. Nilai jalur memori maksimum "boleh didapati dengan cara berikut:
frekuensi jam dram asas
- bilangan pemindahan data setiap jam: jika "kadar data double" (ddr*) digunakan, maka dua kali
- Bas memori (antara muka) Lebar: Sebagai contoh, lebar DDR 3 adalah 64 bit (juga dikenali sebagai baris)
- Bilangan antara muka: Komputer peribadi moden biasanya menggunakan dua antara muka memori (mod saluran dua) untuk mencapai lebar bas 128-bit yang berkesan
- jalur lebar memori maksimum = frekuensi jam dram asas * Bilangan transmisi data setiap jam * Lebar rujukan memori * Bilangan antara muka
- Nilai ini mewakili jalur lebar maksimum teori sistem, yang juga dikenali sebagai "kadar pecah". Anda kini boleh menjalankan penanda aras multichase atau jalur lebar pada sistem anda dan mengesahkan nilai -nilai ini.
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?
Apabila menjalankan beban kerja pada pelayan, sebagai sebahagian daripada penalaan prestasi atau penyelesaian masalah, anda mungkin ingin mengetahui yang CPU teras proses tertentu yang sedang dijadualkan dan bagaimana penggunaan sumber proses berjalan pada teras CPU itu. Langkah pertama adalah mencari proses yang berjalan pada teras CPU. Ini boleh dilakukan menggunakan HTOP. Nilai CPU tidak dapat dilihat dalam paparan lalai HTOP. Untuk mendapatkan nilai teras CPU, mulakan
dari baris arahan, tekan kekunci 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.
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).
uid: Nombor ID pengguna sebenar tugas yang dipantau
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!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











Program perintis ini, kerjasama antara CNCF (Yayasan Pengkomputeran Native Cloud), pengkomputeran ampere, equinix metal, dan digerakkan, menyelaraskan ARM64 CI/CD untuk projek GitHub CNCF. Inisiatif ini menangani kebimbangan keselamatan dan prestasi lim

Tutorial ini membimbing anda melalui membina saluran paip pemprosesan imej tanpa pelayan menggunakan perkhidmatan AWS. Kami akan membuat frontend next.js yang digunakan pada kluster ECS Fargate, berinteraksi dengan Gateway API, Fungsi Lambda, Bucket S3, dan DynamoDB. Th

Tinggal maklumat mengenai trend teknologi terkini dengan surat berita pemaju teratas ini! Senarai ini menawarkan sesuatu untuk semua orang, dari peminat AI ke pemaju backend dan frontend yang berpengalaman. Pilih kegemaran anda dan menjimatkan masa mencari rel
