Rumah > Peranti teknologi > industri IT > 10 Soalan Utama Ketika Berlari di Contoh Ampere Altra

10 Soalan Utama Ketika Berlari di Contoh Ampere Altra

Christopher Nolan
Lepaskan: 2025-02-09 12:57:17
asal
721 orang telah melayarinya

analisis prestasi sistem ampere: Sepuluh soalan dan jawapan utama

10 Key Questions When Running on Ampere Altra-Based Instances

(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>
Salin selepas log masuk
Salin selepas log masuk

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>
Salin selepas log masuk
Salin selepas log masuk

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>
Salin selepas log masuk

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

.

10 Key Questions When Running on Ampere Altra-Based Instances

2.

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>
Salin selepas log masuk
Salin selepas log masuk
Untuk memeriksa kekerapan CPU semasa menjalankan aplikasi, jalankan arahan berikut:

<code>ampere@colo1:~$ free 

              total        used        free      shared  buff/cache   available 

Mem:      130256992     3422844   120742736        4208     6091412   125852984 

Swap:       8388604           0     8388604 
</code>
Salin selepas log masuk
Salin selepas log masuk
3.

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 10 Key Questions When Running on Ampere Altra-Based Instances
  • 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
Untuk mengenal pasti penggunaan CPU untuk setiap CPU dan memaparkan nisbah masa pengguna/masa teras, %USR, %SYS, dan %terbiar adalah nilai utama. Nilai-nilai utama ini juga boleh membantu mengenal pasti "hotspot" CPU yang mungkin disebabkan oleh aplikasi tunggal yang ditanam atau pemetaan mengganggu.

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 Linux free memaparkan statistik memori dan pertukaran.

    10 Key Questions When Running on Ampere Altra-Based Instances

    Output memaparkan memori total, memori yang digunakan dan memori sistem yang tersedia. Lajur penting ialah nilai yang tersedia, yang menunjukkan memori yang tersedia untuk aplikasi dan perlu ditukar. Ia juga menganggap ingatan yang tidak dapat dikitar semula dengan segera.

  • . 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

    10 Key Questions When Running on Ampere Altra-Based Instances

  • 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 $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".

  • bagaimana untuk mengkonfigurasi $htop untuk memaparkan CPU/CORE:

    10 Key Questions When Running on Ampere Altra-Based Instances

  • Tunjukkan teras 4-6 Perintah

    untuk mencapai nilai maksimum (kiraan teras htop bermula pada "1" dan bukannya "0"): $htop

    10 Key Questions When Running on Ampere Altra-Based Instances

  • perintah untuk memeriksa teras statistik yang dipilih:

    $mpstat

    10 Key Questions When Running on Ampere Altra-Based Instances

    Sebaik sahaja anda telah mengenal pasti teras CPU, anda boleh menjalankan perintah
  • untuk memeriksa statistik untuk setiap CPU dan periksa CPU hotspot/sibuk individu. Ini adalah alat statistik multiprosesor yang melaporkan statistik untuk setiap CPU (atau teras). Untuk maklumat lanjut mengenai
, lihat "Bagaimana saya menghabiskan masa dalam permohonan saya berbanding dengan masa kernel?"

$mpstat 7. $mpstat

kemunculan rangkaian boleh berlaku walaupun sebelum anda menembusi sumber lain pada pelayan. Masalah ini ditemui semasa menjalankan beban kerja dalam model pelanggan-pelayan. Perkara pertama yang perlu anda lakukan ialah menentukan bagaimana rangkaian anda kelihatan. Latensi dan jalur lebar antara pelanggan dan pelayan sangat penting. Alat seperti Iperf3, Ping, dan Traceroute adalah alat mudah yang dapat membantu anda menentukan batasan rangkaian anda. Sebaik sahaja batasan rangkaian telah dikenalpasti, alat seperti

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

    Perintah ini akan memberikan kelebihan paket yang diterima dan dihantar oleh sistem.

    10 Key Questions When Running on Ampere Altra-Based Instances

    . Perintah ini mencetak statistik antara muka rangkaian, termasuk melalui dan penggunaan.
  • nicstat

    lajur termasuk: 10 Key Questions When Running on Ampere Altra-Based Instances

    • int: Nama antara muka
    • %util: penggunaan maksimum
    • SAT: Nilai yang mencerminkan statistik tepu antara muka
    • awalan nilai "r" = baca/terima
    • Nilai awalan "w" = tulis/pemindahan
    • 1- kb/s: kilobytes sesaat
    • 2- pk/s: paket sesaat
    • 3- avs/s: Saiz paket purata (bait)

    8.

    seperti rangkaian, cakera juga boleh menjadi sebab prestasi aplikasi yang lemah. Apabila mengukur prestasi cakera, kita melihat metrik berikut:

    • kadar penggunaan
    • ketepuan
    • iops (input/output sesaat)
    • throughput
    • Masa tindak balas

    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

    selepas aplikasi berjalan, anda boleh menggunakan $iostat dan $dstat untuk memantau penggunaan sumber cakera dalam masa nyata.

    Perintah

    iostat memaparkan statistik I/O untuk setiap cakera, menyediakan metrik untuk pencirian beban kerja, penggunaan, dan ketepuan.

    10 Key Questions When Running on Ampere Altra-Based Instances

    output baris pertama memaparkan ringkasan sistem, termasuk versi kernel, nama tuan rumah, seni bina data, dan kiraan CPU. Baris kedua menunjukkan ringkasan CPU sistem sejak permulaan.

    Untuk setiap peranti cakera yang dipaparkan dalam baris berikutnya, ia memaparkan butiran asas dalam lajur:

      tps: bilangan urus niaga sesaat
    • kb_read/s: bilangan kilobytes dibaca sesaat
    • kb_wrtn/s: kilobytes ditulis sesaat
    • kb_read: Jumlah bilangan kilobytes baca
    • kb_write: Jumlah bilangan kilobytes ditulis
    • Perintah

    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. dstat

    Imej berikut menunjukkan beban kerja yang berintensifkan.

    10 Key Questions When Running on Ampere Altra-Based Instances 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.

    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, $numastat adalah alat yang hebat.

    Perintah

    numastat menyediakan statistik untuk sistem akses memori (NUMA) yang tidak konsisten. Sistem ini biasanya sistem dengan pelbagai slot CPU.

    10 Key Questions When Running on Ampere Altra-Based Instances

    Sistem operasi Linux cuba memperuntukkan memori pada nod NUMA terdekat, dan

    memaparkan statistik semasa untuk peruntukan memori. $numastat

      numa_hit: memperuntukkan memori pada node NUMA yang diharapkan
    • numa_miss: Tunjukkan peruntukan tempatan yang harus di tempat lain
    • numa_foreign: Tunjukkan peruntukan jauh yang harus diperuntukkan secara tempatan
    • Other_node: Alihkan memori pada nod ini, sementara proses berjalan di tempat lain
    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.

    Perintah

    juga boleh digunakan untuk melihat pengedaran NUMA suatu proses. $numastat -p <process></process>

    10 Key Questions When Running on Ampere Altra-Based Instances 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

    Pengguna CPU utama akan dipecahkan kepada masa pengguna dan masa sistem.

    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).

    10 Key Questions When Running on Ampere Altra-Based Instances uid: Nombor ID pengguna sebenar tugas yang dipantau

      PID: Nombor pengenalan tugas yang dipantau
    • %USR: Peratusan CPU yang digunakan oleh tugas ketika melaksanakan di peringkat pengguna (aplikasi), tanpa keutamaan.
    • %Sistem: Peratusan CPU yang digunakan oleh tugas semasa melaksanakan di peringkat sistem (kernel)
    • %tunggu: peratusan CPU yang digunakan ketika tugas sedang menunggu untuk menjalankan
    • %CPU: Jumlah peratusan masa CPU yang digunakan oleh tugas.
    • cpu: pemproses/nombor teras yang mana tugas dilampirkan
    • juga boleh dijalankan untuk mengumpul data mengenai proses tertentu.
    • 10 Key Questions When Running on Ampere Altra-Based Instances

      Sila hubungi pasukan jualan pakar kami untuk perkongsian atau belajar bagaimana untuk mengakses sistem Ampere melalui program Akses Pemaju kami.

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!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan