Precision Time Protocol (PTP) menyediakan sinkronisasi jam sub-mikrodetik dengan timestamp berbasis perangkat keras untuk sistem terdistribusi, seperti perdagangan keuangan frekuensi tinggi.
Apa itu PTP
Fitur sinkronisasi waktu PTP saat ini berada dalam pratinjau undangan. Untuk menggunakan fitur ini, submit a ticket untuk mengajukan permohonan.
Precision Time Protocol (PTP) adalah protokol sinkronisasi waktu presisi tinggi berdasarkan standar IEEE 1588. PTP memanfaatkan timestamp perangkat keras, kompensasi jalur dinamis, dan negosiasi jam master-slave untuk mengatasi keterbatasan akurasi milidetik dari Network Time Protocol (NTP), yang disebabkan oleh latensi pemrosesan perangkat lunak dan fluktuasi jaringan. Dengan demikian, PTP mampu memberikan sinkronisasi sub-mikrodetik untuk sistem terdistribusi.
Dibandingkan dengan NTP, PTP memindahkan pemrosesan timestamp ke perangkat keras, sehingga mengurangi beban CPU dan jaringan sekaligus meningkatkan akurasi:
|
Feature |
PTP |
NTP |
|
Accuracy |
Sub-microsecond |
Millisecond |
|
Timestamp implementation |
Hardware support (such as PHC devices) |
Software implementation |
|
Network environment |
Local area network or low-latency |
Wide area network |
|
Resource consumption |
Low (controllable message frequency) |
High (relies on frequent message exchanges) |
|
Typical application |
Financial trading |
Internet servers, general devices |
Alibaba Cloud menempatkan jam atom aktif-standby redundan di setiap zona. Jam utama melakukan sinkronisasi dengan GPS dan membangun topologi hierarkis menggunakan boundary clock IEEE 1588 untuk mengirimkan sinyal waktu sub-mikrodetik ke instans ECS.
Secara default, instans ECS menggunakan Chrony atau NTP untuk sinkronisasi waktu. Anda dapat mengaktifkan PTP pada wilayah dan tipe instans yang didukung untuk mencapai akurasi sub-mikrodetik.
Kasus penggunaan
Perdagangan keuangan frekuensi tinggi: Timestamp perangkat keras PTP menyelaraskan waktu pesanan lintas bursa dengan presisi sub-mikrodetik, mencegah perselisihan akibat deviasi jam, serta memenuhi persyaratan keadilan waktu dan kepatuhan regulasi.
Batasan
-
Wilayah dan zona yang didukung:
Region Name
Region ID
Zone Name
Zone ID
China (Hong Kong)
cn-hongkong
Zone B (Invitational Preview)
cn-hongkong-b
Zone C (Invitational Preview)
cn-hongkong-c
Zone D (Invitational Preview)
cn-hongkong-d
-
Keluarga instans yang didukung:
Anda dapat memanggil operasi DescribeInstanceTypes untuk memeriksa apakah suatu tipe instans didukung. Jika parameter PtpSupport dalam bagian Clock pada respons bernilai supported, maka tipe instans tersebut mendukung PTP. Jika tipe instans tidak mendukung PTP, parameter PtpSupport tidak akan muncul dalam respons.
-
Keluarga instans tujuan umum g9i, keluarga instans yang dioptimalkan untuk komputasi c9i, dan keluarga instans yang dioptimalkan untuk memori r9i (pratinjau undangan)
-
Keluarga ECS Bare Metal Instance tujuan umum ebmg9i, ebmc9i, dan ebmr9i (pratinjau undangan)
-
Keluarga instans yang dioptimalkan untuk komputasi dengan kecepatan clock tinggi hfc9i, keluarga instans tujuan umum dengan kecepatan clock tinggi hfg9i, dan keluarga instans yang dioptimalkan untuk memori dengan kecepatan clock tinggi hfr9i
-
-
Gambar yang didukung: Hanya gambar Linux. Disarankan menggunakan versi gambar resmi.
-
Versi kernel Linux harus 4.12 atau lebih baru.
Mengaktifkan atau menonaktifkan PTP untuk instans ECS
Mengaktifkan layanan sinkronisasi waktu PTP
-
Aktifkan PTP di Konsol
-
Buat instans
Buka tab Custom Launch di Konsol ECS. Pilih wilayah, tipe instans, dan gambar yang mendukung PTP. Di bagian Advanced Options, aktifkan PTP.
-
Untuk instans yang sudah ada
Jika server fisik tidak mendukung PTP, restart instans untuk memigrasikannya ke server yang didukung sebelum mengaktifkan PTP.
-
Buka halaman dan klik ID instans target untuk membuka halaman detail instans.
-
Di halaman Instance Details, dari daftar drop-down All Operations, pilih .
-
Di kotak dialog Set PTP Time Synchronization Service, aktifkan PTP.
Setelah Anda mengklik OK, jendela PTP Time Synchronization Task akan muncul.
-
Klik ID tugas untuk melihat progres. Setelah tugas selesai, PTP diaktifkan untuk instans tersebut.
-
-
-
Cloud Assistant telah dipra-instal pada gambar publik.
Fitur perintah publik dan plugin memerlukan Cloud Assistant.
Perintah umum Cloud Assistant
-
Buka halaman Konsol ECS - halaman Cloud Assistant dan beralih ke tab Common Commands.
-
Temukan perintah
ACS-ECS-EnablePTP-for-linux.shdan klik Run di kolom Actions. -
Pilih instans yang sedang berjalan dan klik Run.
Plugin Asisten Cloud
-
Periksa apakah perangkat keras PHC tersedia.
Jika perangkat keras PHC tidak tersedia, submit a ticket.
lspci | grep 500cJika PTP diaktifkan, perintah akan mengembalikan:

-
Periksa versi Cloud Assistant. Diperlukan versi
2.2.3.631atau lebih baru. Jika versi lebih lama, upgrade Cloud Assistant.acs-plugin-manager --version -
Konfirmasi plugin Cloud Assistant tersedia di wilayah saat ini.
Jika plugin tidak tersedia, kirim Tiket.
acs-plugin-manager --list | grep ACS-PTP-Monitor -
Instal driver dengan Cloud Assistant.
Umumnya selesai dalam waktu 10 menit.
acs-plugin-manager --exec --plugin ACS-PTP-Monitor --params --install --timeout 0 -
Jalankan layanan ptp-monitor.
Memperbarui konfigurasi chrony, merestart chronyd, mengaktifkan auto-start ptp-monitor, dan menjalankan ptp-monitor.
acs-plugin-manager --exec --plugin ACS-PTP-Monitor --params --start
Paket instalasi
-
Periksa perangkat keras PHC.
lspci | grep 500cJika PTP diaktifkan, perintah akan mengembalikan:

-
Unduh paket skrip terkompresi. Diperlukan koneksi Internet.
Setelah mengaktifkan PTP, gunakan skrip
ptp-monitoruntuk penyebaran dan konfigurasi satu klik.wget https://ptp-monitor-hk.oss-cn-hongkong.aliyuncs.com/ptp-monitor/ptp-monitor-latest.zip -
Ekstrak paket.
yum install -y unzip unzip ptp-monitor-latest.zip -d ptp-monitor-latest cd ptp-monitor-latestPada sistem operasi seperti Ubuntu dan Debian, jalankan
sudo apt update && sudo apt install unzipuntuk menginstalunzip. -
Kompilasi dan instal driver.
bash ptp-monitor.sh --install -
Konfirmasi driver PTP telah terinstal.
ptp-monitormengompilasi driver PTP berdasarkan sistem operasi saat ini. Driver tersebut bernamaptp_cipu.lsmod | grep ptp_cipu -
Konfirmasi file perangkat PTP telah dibuat.
ll /dev/ptp*Jika informasi file perangkat dikembalikan, driver berjalan dengan benar.

-
Konfigurasi chrony, restart chronyd, dan jalankan ptp-monitor.
bash ptp-monitor.sh --startSumber jam PTP mulai berlaku dalam hitungan puluhan detik. Verifikasi dengan melihat status sinkronisasi PTP.
-
Menonaktifkan layanan sinkronisasi waktu PTP
-
Nonaktifkan PTP di konsol
-
Buka halaman dan klik ID instans target untuk membuka halaman detail instans.
-
Di halaman Instance Details, dari daftar drop-down All Operations, pilih .
-
Di kotak dialog Set PTP Time Synchronization Service, nonaktifkan PTP.
Setelah Anda mengklik OK, jendela PTP Time Synchronization Task akan muncul.
-
Klik ID tugas untuk melihat progres. Setelah tugas selesai, PTP dinonaktifkan untuk instans tersebut.
-
-
Cloud Assistant telah dipra-instal pada gambar publik.
Fitur perintah publik dan plugin memerlukan Cloud Assistant.
Perintah umum Cloud Assistant
-
Buka halaman Konsol ECS - halaman Cloud Assistant dan beralih ke tab Common Commands.
-
Temukan perintah
ACS-ECS-DisablePTP-for-linux.shdan klik Run di kolom Actions. -
Pilih instans yang sedang berjalan dan klik Run.
Plugin Cloud Assistant
Hentikan layanan ptp-monitor.
Menonaktifkan PTP menghapus perangkat PTP, memperbarui chrony untuk menghapus sumber jam perangkat keras PTP, merestart chronyd untuk mengembalikan layanan jam default seperti NTP, dan menghentikan ptp-monitor.
acs-plugin-manager --exec --plugin ACS-PTP-Monitor --params --stopPaket instalasi
Nonaktifkan sumber jam PTP.
Menonaktifkan PTP menghapus perangkat PTP, memperbarui chrony untuk menghapus sumber jam perangkat keras PTP, merestart chronyd untuk mengembalikan layanan jam default seperti NTP, dan menghentikan ptp-monitor.
bash ptp-monitor.sh --stop -
Menampilkan status sinkronisasi PTP
Jalankan chronyc sources untuk melihat sumber waktu yang dikonfigurasi (PTP dan NTP).
Contoh output:
Contoh berikut menunjukkan instans yang menggunakan jam perangkat keras PTP sebagai sumber sinkronisasi utama dengan akurasi tingkat nanodetik:

-
MS: Pengidentifikasi sumber waktu.PHC0menunjukkan jam perangkat keras PTP; alamat IP menunjukkan server NTP.#*menandai sumber sinkronisasi aktif. Dalam contoh ini, instans menggunakan jam perangkat keras PTP. -
Stratum: Tingkat stratum. Nilai lebih rendah menunjukkan akurasi lebih tinggi (0 = jam atom atau GPS, 1 = sumber presisi tinggi yang terhubung langsung). -
Poll: Eksponen interval polling. Interval =2^Polldetik. Misalnya,Poll=4= 16 detik. -
Reach: Nilai oktal yang menunjukkan tingkat keberhasilan delapan upaya sinkronisasi terakhir. -
LastRx: Detik sejak respons terakhir diterima. -
Last sample: Offset jam dari pengukuran terakhir, dalam formatoffset [raw offset] +/- error, mencerminkan selisih antara waktu sistem dan waktu sumber.
Memantau kesehatan sinkronisasi PTP
Jalankan chronyc tracking untuk melihat metrik kesehatan jam sistem, termasuk bias waktu, kesalahan frekuensi, dan latensi jaringan.
Contoh output:
Dalam contoh ini, bias waktu berada pada tingkat nanodetik (System time = 1 ns, RMS offset = 1.175 ns) dan kesalahan frekuensi rendah (5,213 ppm), menunjukkan operasi jam perangkat keras yang stabil:

-
System time: Bias antara jam sistem dan jam perangkat keras PTPPHC0.slowberarti waktu sistem tertinggal 1 nanodetik (1 ns = 10⁻⁹ s). -
RMS offset: Offset root mean square jangka panjang (1.175 ns dalam contoh ini), mencerminkan stabilitas sinkronisasi. -
Frequency: Bias frekuensi jam sistem.slowberarti jam lokal berjalan 5,213 µs/s lebih lambat daripadaPHC0(ppm = parts per million). -
Root delay: Total latensi jaringan ke sumber waktu root. Latensi rendah menunjukkan lingkungan jaringan yang stabil.
FAQ
Apakah saya dapat mengaktifkan atau menonaktifkan layanan sinkronisasi waktu PTP menggunakan OpenAPI?
-
Anda dapat mengaktifkan atau menonaktifkan PTP melalui OpenAPI.
-
Buat instans: Panggil RunInstances dan atur PtpStatus dalam ClockOptions menjadi enabled atau disabled.
-
Untuk instans yang sudah ada: Panggil ModifyInstanceClockOptions dan atur PtpStatus menjadi enabled atau disabled.
Jika berhasil, ID tugas (TaskId) akan dikembalikan. Panggil DescribeTasks dengan TaskAction diatur ke ModifyInstanceClockOptions dan TaskIds diatur ke ID tugas untuk mengecek status tugas.
-
-
Panggil DescribeInstances dengan AdditionalAttributes diatur ke CLOCK_OPTIONS untuk memverifikasi status PTP.
-
Panggil RunCommand untuk menjalankan perintah terkait guna menyelesaikan konfigurasi.
Apakah PTP dapat digunakan bersama NTP?
Ya. PTP tidak memengaruhi NTP. chronyd menggunakan algoritma internal untuk memilih sumber jam terbaik dan memprioritaskan PTP berdasarkan konfigurasi.
Saat menginstal driver, muncul error "dkms: command not found".
Instalasi driver PTP pertama-tama menginstal paket tool yang diperlukan termasuk dkms. Atasi masalah instalasi paket dkms tersebut. Untuk log error detail, lihat /var/log/ptp-cipu-ptp-monitor.log.
-
Skenario 1: Sumber repo mungkin sudah usang. Perbarui sumber repo dan coba lagi.
-
Skenario 2: Unduh paket dari situs web resmi dkms.
Bagaimana cara mengaktifkan atau menonaktifkan auto-start untuk program ptp-monitor?
ptp-monitor adalah komponen O&M yang berjalan di instans. Disarankan agar tetap berjalan, meskipun tidak wajib. Secara default, program ini otomatis berjalan saat boot.
-
Nonaktifkan auto-start saat boot.
acs-plugin-manager --exec --plugin ACS-PTP-Monitor --params --disable-service -
Aktifkan auto-start saat boot.
acs-plugin-manager --exec --plugin ACS-PTP-Monitor --params --enable-service
Bagaimana cara menguninstal driver PTP?
Driver PTP (ptp_cipu) diperlukan untuk PTP dan tidak memengaruhi instans. Untuk menguninstalnya, jalankan perintah Cloud Assistant berikut:
acs-plugin-manager --exec --plugin ACS-PTP-Monitor --params --uninstall