Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Praktik terbaik
Praktik EC2 terbaik Amazon
Ikuti praktik EC2 terbaik saat ini dan pastikan ketersediaan penyimpanan data yang memadai.
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-best-practices.html
Penjadwal Linux
Penjadwal Linux dapat memesan ulang paket pada soket UDP jika proses yang sesuai tidak disematkan ke inti tertentu. Setiap thread yang mengirim atau menerima data UDP harus menyematkan dirinya ke inti tertentu selama durasi transmisi data.
AWS Ground Station daftar awalan terkelola
Disarankan untuk menggunakan daftar awalan yang com.amazonaws.global.groundstation
dikelola AWS saat menentukan aturan jaringan untuk memungkinkan komunikasi dari Antena. Lihat Bekerja dengan Daftar Awalan Terkelola AWS untuk informasi selengkapnya tentang Daftar Awalan Terkelola AWS.
Batasan kontak tunggal
Agen AWS Ground Station mendukung beberapa aliran per kontak, tetapi hanya mendukung satu kontak pada satu waktu. Untuk mencegah masalah penjadwalan, jangan bagikan instance di beberapa grup titik akhir aliran data. Jika konfigurasi agen tunggal dikaitkan dengan beberapa DFEG yang berbeda ARNs, itu akan gagal untuk mendaftar.
Menjalankan layanan dan proses bersama AWS Ground Station Agen
Saat meluncurkan layanan dan proses pada EC2 Instance yang sama dengan AWS Ground Station Agen, penting untuk mengikatnya ke v yang CPUs tidak digunakan oleh kernel AWS Ground Station Agen dan Linux karena ini dapat menyebabkan kemacetan dan bahkan kehilangan data selama kontak. Konsep pengikatan ke v spesifik CPUs ini dikenal sebagai afinitas.
Inti yang harus dihindari:
-
agentCpuCores
dari File konfigurasi agen -
interrupt_core_list
dariMenyetel interupsi perangkat keras dan menerima antrian - berdampak pada CPU dan jaringan.-
Nilai default dapat ditemukan dari Lampiran: Parameter yang direkomendasikan untuk lagu interup/RPS
-
Sebagai contoh menggunakan c5.24xlarge
instance
Jika Anda menentukan
"agentCpuCores": [24,25,26,27,72,73,74,75]"
dan berlari
echo "@reboot sudo /opt/aws/groundstation/bin/set_irq_affinity.sh '0,1,48,49' 'ffffffff,ffffffff,ffffffff' >> /var/log/user-data.log 2>&1" >>/var/spool/cron/root
kemudian hindari core berikut:
0,1,24,25,26,27,48,49,72,73,74,75
Layanan afinisasi (systemd)
Layanan yang baru diluncurkan akan secara otomatis berhubungan dengan yang interrupt_core_list
disebutkan sebelumnya. Jika kasus penggunaan layanan Anda yang diluncurkan memerlukan inti tambahan, atau membutuhkan inti yang kurang padat, ikuti bagian ini.
Periksa afinitas layanan Anda saat ini dikonfigurasi dengan perintah:
systemctl show --property CPUAffinity <service name>
Jika Anda melihat nilai kosong sepertiCPUAffinity=
, itu berarti kemungkinan akan menggunakan inti default dari perintah di atas ...bin/set_irq_affinity.sh <using the cores here> ...
Untuk mengganti dan menetapkan afinitas tertentu, temukan lokasi file layanan dengan menjalankan:
systemctl show -p FragmentPath <service name>
Buka dan modifikasi file (menggunakanvi
,nano
, dll.) Dan letakkan CPUAffinity=<core list>
di [Service]
bagian seperti:
[Unit] ... [Service] ... CPUAffinity=2,3 [Install] ...
Simpan file dan restart layanan untuk menerapkan afinitas dengan:
systemctl daemon-reload
systemctl restart <service name>
# Additionally confirm by re-running
systemctl show --property CPUAffinity <service name>
Untuk informasi lebih lanjut kunjungi: Red Hat Enterprise Linux 8 - Mengelola, memantau, dan memperbarui kernel - Bab 27. Mengkonfigurasi kebijakan Afinitas CPU dan NUMA menggunakan systemd
Proses afinisasi (skrip)
Sangat disarankan untuk skrip dan proses yang baru diluncurkan untuk dikaitkan secara manual karena perilaku Linux default akan memungkinkan mereka untuk menggunakan inti apa pun pada mesin.
Untuk menghindari konflik inti untuk setiap proses yang berjalan (seperti python, skrip bash, dll.), Luncurkan proses dengan:
taskset -c <core list> <command>
# Example: taskset -c 8 ./bashScript.sh
Jika proses sudah berjalan, gunakan perintah sepertipidof
,top
, atau ps
untuk menemukan ID Proses (PID) dari proses tertentu. Dengan PID Anda dapat melihat afinitas saat ini dengan:
taskset -p <pid>
dan dapat memodifikasinya dengan:
taskset -p <core mask> <pid>
# Example: taskset -p c 32392 (which sets it to cores 0xc -> 0b1100 -> cores 2,3)
Untuk informasi lebih lanjut tentang taskset lihat taskset