Logo GH

समय तुल्यकालन और बहाव

1) समय एक वास्तुशिल्प घटक क्यों है

समय सभी परतों में गिरता है: टीटीएल टोकन और प्रमाणपत्र, आरपीसी समय सीमा, घटना क्रम, लॉग और एनालिटिक्स, आम सहमति और ताले। दस से सैकड़ों मिलीसेकेंड के लिए एक त्रुटि कर सकते हैं:
  • ब्रेक Kerberos/OAuth/JWT ('iat/nbf/exp' फ़ील्ड;
  • विकृत मेट्रिक्स/ट्रेल्स और अलर्ट;
  • ड्रॉप ब्रोकर/ग्राहक (टाइमआउट, रिट्रे, घातीय बैकऑफ);
  • वितरित परिदृश्यों में बाधित आदेश और पहचान।
मुख्य शब्द:
  • संदर्भ से स्थानीय समय का ऑफसेट - अंतर।
  • नोड्स के बीच ऑफसेट का तिरछा - अंतर।
  • सुधार के अभाव में बहाव - घड़ी बहाव दर (पीपीएम)।
  • Jitter - देरी/माप परिवर्तनशीलता।

2) स्रोत और समय प्रोटोकॉल

2. 1 एनटीपी (नेटवर्क समय प्रोटोकॉल)

स्ट्रेटा (स्ट्रैटम 1 - जीएनएसएस/रेडियो से प्रत्यक्ष, स्ट्रैटम 2 - स्ट्रैटम 1, आदि से)।

दो तरीकों से सुधार:
  • नींद (चिकनी आवृत्ति समायोजन, अनुप्रयोगों के लिए सुरक्षित);
  • चरण (समय कूद; प्रोडा पर अवांछनीय)।
  • कार्यान्वयन: क्रोनी, एनटीपीडी, सिस्टेम्ड-टाइमसिंक्ड। सर्वर के लिए, इसे क्रोनी पसंद किया जाता है।

2. 2 एनटीएस (टीएलएस पर एनटीपी)

प्रामाणिक तुल्यकालन (MITM सुरक्षा और समय स्पूफिंग)।

बाहरी समय सर्वर के लिए अनुशंसित।

2. 3 PTP/IEEE 1588

एनआईसी/टीओआर, मिलीसेकंड और माइक्रोसेकंड सटीकता में हार्डवेयर टाइमस्टैम्प।

मोड: सीमा/पारदर्शी घड़ी, दूरसंचार/उद्यम प्रोफाइल।

पी99-ऑर्डर, एचएफटी/दूरसंचार/उद्योग पर हार्ड एसएलओ के लिए उपयोग करें।

2. 4 जीएनएसएस (जीपीएस/ग्लोनास) और पीपीएस

स्थानीय रिसीवर स्ट्रैटम 1 के लिए पीपीएस (पल्स-प्रति-सेकंड) संदर्भ देते हैं।

स्पूफिंग/जाम करने पर विचार करना महत्वपूर्ण है - एंटेना स्थापित करें और अखंडता की निगरानी करें।

2. 5 बादल

क्लाउड स्रोत (आंतरिक स्ट्रैटम पूल) वीपीसी के भीतर ऑफसेट और जिटर को कम करते हैं।

संकर वातावरण के लिए, स्थानीय और बादल संदर्भों को मिलाएं।

3) ओएस और हार्डवेयर में समय

टीएससी/एचपीईटी/आरटीसी: आधुनिक सीपीयू टीएससी को एक तेज मोनोटोन काउंटर के रूप में रखते हैं; आवृत्ति (अपरिवर्तनीय TSC) को ठीक करें।

वर्चुअलाइजेशन/कंटेनर: बहाव और "कूद" अधिक बार। हाइपरविजर पर - एक सख्त समय सेवा; दूर - क्रोनी।

बिजली की बचत टाइमर मोनोटोनी के साथ हस्तक्षेप कर सकती है - BIOS/UEFI विकल्पों की जांच करें।

4) नीरस और "दीवार" घड़ियाँ

वॉल-क्लॉक (वास्तविक समय, टीजेड/यूटीसी) - लॉग, इवेंट टैग, लोगों के लिए।

मोनोटोनिक घड़ी - अंतराल/समय को मापने के लिए।

कोड में:
  • लिनक्स: 'CLOCK _ MONOTONIC'।
  • C++: 'std::: क्रोनो::: स्थिर _ घड़ी'।
  • गो: बिल्ट-इन मोनोटोन भागों का समय। समय 'अंतराल में।
  • जावा: 'सिस्टम। नैनो टाइम () 'अवधि के लिए, पंचांग के लिए नहीं।

नियम: समय सीमा और पीछे हटना - नीरस घड़ियों पर; क्रमबद्धता/लॉगिंग - UTC पर।

5) लीप सेकंड/" लीप स्मीयर" और कैलेंडर ट्रैप

लीप सेकंड "00: 59:60" का कारण बन सकता है या टाइमर/मेट्रिक्स में दूसरा → लूप दोहरा सकता है।

दृष्टिकोण:
  • स्मीयर (एन घंटे में एक सेकंड का चिकना स्मूयरिंग)।
  • चरण (अवांछनीय)।
  • तर्क के लिए स्थानीय TZ/दिन के उजाले की बचत समय पर कभी भरोसा न करें; स्टोर UTC, उपयोगकर्ता के TZ में दिखाएँ।
  • TZDB (टाइम ज़ोन बेस) अपडेट करें - राजनीतिक परिवर्तन होते हैं।

6) "दीवार" में विश्वास के बिना आदेश का समन्वय

लैम्पोर्ट घड़ियाँ और वेक्टर घड़ियाँ भौतिक घड़ी के बिना कारण संबंध हैं।

हाइब्रिड लॉजिकल क्लॉक्स (एचएलसी) - भौतिक समय और काउंटर को मिलाएं, छोटे तिरछा के लिए प्रतिरोधी।

ट्रूटाइम जैसे मॉडल - अंतराल '[जल्द से जल्द, नवीनतम]' वापस करें और धारावाहिक के लिए प्रतिबद्ध-प्रतीक्षा की आवश्यकता होती है।

7) प्रोटोकॉल और प्रणालियों पर समय का प्रभाव

सुरक्षा: Kerberos एक छोटे तिरछा (आमतौर पर 5 मिनट) की अनुमति देता है, TLS/प्रमाणपत्र 'notToro/notForm', JWT को 'exp/nbf/iat' के प्रति संवेदनशील हैं।

दलालों/कतारों: कार्य समय सीमा/दृश्यता समय सही समय पर निर्भर करता है।

DBMS/clusters: 'अपडेटेड _ at '/ts द्वारा संस्करण संघर्ष - HLC/संस्करण दर्ज करें, "कच्चे" वॉल-टाइमस्टैम्प की तुलना नहीं करें।

स्ट्रीमिंग: घटना समय और प्रसंस्करण समय के बीच अंतर; वॉटरमार्क और विलंबता कॉन्फ़िगर करें।

क्रोन/योजनाकार: बहाव "स्टिकिंग "/डबल शुरू होता है। मोनोटोन अंतराल और डीडअप कुंजी का उपयोग करें।

8) अवलोकन और समय एसएलओ

8. 1 मेट्रिक्स

'समय। offset_ms' (संदर्भ के लिए ऑफसेट), 'समय। jitter_ms', 'स्ट्रैटम', 'रूट _ देरी', 'रूट _ फैलाव'।

Для पीटीपी: 'पथ _ देरी', 'ग्रैंडमास्टर _ ऑफसेट', 'जीएम _ पहचान', 'घड़ी _ वर्ग'।

अलर्ट: ऑफसेट> सीमा (उदाहरण के लिए, 100-500 एमएस), स्रोत हानि, कदम सुधार।

8. 2 निदान

'क्रोनीक ट्रैकिंग/स्रोत/स्रोत'

'ntpq -p', 'ntpstatt'

PTP: 'pmc', विक्रेता NIC/ToR उपयोगिताओं।

8. 3 एसएलओ/गलत बजट

SLO उदाहरण: "औसत ऑफसेट ≤ 1 ms, p99 ऑफसेट ≤ 25 ms, उत्पादन नोड्स पर कोई कदम नहीं; PTP ग्रैंडमास्टर ≤ 2 s से अधिक विफल।"

9) कॉन्फ़िगरेशन प्रैक्टिस (Linux/containers/K8s)

9. 1 क्रोनी (अनुशंसित)

उदाहरण ('/etc/chrony/chrony। conf '):

pool time. example. org iburst maxsamples 9 nts makestep 0. 5 1 # one step at big error at start rtcsync # synchronize hardware clock leapsectz right/UTC # leap seconds from tzdata driftfile/var/lib/chrony/drift
उपयोगी विकल्प:
  • 'maxsources', 'minsamples/maxsamples', 'maxslewrate'।
  • पृथक डीसी के लिए - स्थानीय संदर्भ + जीपीएस/पीपीएस।

9. 2 कंटेनरों और विधानसभाओं

मेजबान पर तुल्यकालित करें; कंटेनर एक कोर का उपयोग करते हैं।

K8s में - क्रोनी या नोड-लेवल टाइम एजेंट के साथ डेमनसेट; अनुप्रयोगों को समय जोड़ ने से रोकें।

9. 3 पीटीपी स्टैक

हार्डवेयर टाइमस्टैम्पिंग, पीटीपी डेमन के साथ एनआईसी, टीओआर पर सीमा घड़ियाँ।

पीटीपी डोमेन विविधता (प्रोफाइल), "खराब" ग्रैंडमास्टर के खिलाफ सुरक्षा।

10) समय सुरक्षा

एनटीएस/सत्यापित एनटीपी, फ़िल्टर और दर-सीमा (एनटीपी-लाभ - डीडीओएस वेक्टर)।

पीटीपी सुरक्षा: एल 2 अलगाव, मल्टीकास्ट एसीएल, जीएम स्पूफिंग मॉनिटरिंग।

GNSS: अच्छी दृश्यता, स्पूफिंग/जैमिंग डिटेक्टा, फॉलबैक स्रोतों के साथ एंटेना।

11) इंजीनियरिंग पैटर्न और कोड

11. 1 डेडलाइन/टाइमआउट

एक पूर्ण दीवार-टाइमस्टैम्प के बजाय "मोनोटोन स्टार्ट + डेल्टा" के रूप में समय सीमा संग्रहीत करें।

हमेशा तिरछा करने के लिए स्टॉक जोड़ें (उदाहरण के लिए, TTL टोकन के लिए अपेक्षित p99-तिरछा के 2 ×)।

11. 2 संस्करण तुलना

'updated _ at' between नोड्स पर भरोसा न करें। उपयोग करें:
  • वर्शनिंग/ETag;
  • एचएलसी/सेक;
  • आशावादी रुकावटें।

11. 3 लॉग और निशान

हमेशा यूटीसी; एजेंट लॉग में मेजबान का 'time _ offset _ ms' क्षेत्र शामिल करें।

ट्रेस घटनाओं में गोंद घटना-समय।

11. 4 प्रोसेसिंग लीप सेकंड

सभी नोड्स में समान रूप से एक नीति (स्मीयर/स्टेप) चुनें।

टेस्ट: मेट्रिक्स को एक सेकंड में "ब्रेक" नहीं करना चाहिए।

12) डोमेन पर प्रभाव

औथ: टोकन - "घड़ीतिरछा भत्ता" पर विचार करें (उदाहरण के लिए, 2-5 मिनट)।

भुगतान/समय खंड: अंतराल बंद करें, पूर्ण समय नहीं।

दलाल: रिट्रे शेड्यूल - नीरस घड़ियों पर।

DB/TTL: Redis/DB में TTL - स्थानीय घड़ियों पर निर्भर करता है: स्टॉक लेट करें।

एनालिटिक्स - समय एकत्रीकरण - एकल यूटीसी और अंतर्ग्रहण तुल्यकालन का उपयोग करें।

13) टेस्ट प्लेबुक (गेम डेज़)

बहाव इंजेक्शन: कृत्रिम रूप से घड़ी को +/ −, पर ले जाएं; Auth, दलालों, SLO की जाँच करें।

एनटीपी आउटेज: अक्षम स्रोत, ट्रेस बहाव और ऑटो-स्विच।

लीप सेकंड/स्मीयर: लीप घटना का सिमुलेशन, शेड्यूल/टाइमर का मूल्यांकन।

PTP GM असफलता: स्विच समय की जाँच करें और बाद में ऑफसेट करें.

वीएम निलंबित/फिर से शुरू: सुनिश्चित करें कि मेहमानों पर कोई "कूद" और कदम नहीं हैं।

14) एंटी-पैटर्न

एचएलसी/सेक के बिना दीवार समय में विभिन्न नोड्स की घटनाओं की तुलना करें।

यूटीसी के बजाय डेटाबेस में समय का "स्ट्रिंग लोकेल" (TZ के साथ) डालें।

अनुप्रयोगों को 'date -s '/' timedatectl सेट-टाइम' करने की अनुमति दें.

बिना योजना के उत्पाद पर कदम सुधार शामिल करें।

TZDB अद्यतन और दिन के उजाले सहेजने के समय नियमों को अनदेखा करें.

तिरछा मार्जिन के बिना बैकऑफ/टाइमआउट/टोकन-टीटीएल के लिए वॉल-क्लॉक का उपयोग करें।

तार्किक घड़ी के बजाय भौतिक समय के साथ "चंगा" करने की कोशिश।

15) कार्यान्वयन चेकलिस्ट

  • एकल नीति: एनटीपी (एनटीएस के साथ) या पीटीपी; विश्वसनीय स्रोतों की सूची।
  • नोड्स स्लीव के लिए कॉन्फ़िगर किए गए हैं, केवल शुरुआत में कदम।
  • समूहों में एकल छलांग दूसरी (स्मीयर/स्टेप) नीति।
  • ऑफसेट, जिटर, स्ट्रैटम/पीटीपी संकेतकों की निगरानी; अलर्ट।
  • अनुप्रयोग अंतराल/समय सीमा के लिए मोनोटोन घंटे का उपयोग करते हैं।
  • आदेश/संघर्ष के लिए - एचएलसी/संस्करण, दीवार-टाइमस्टैम्प नहीं।
  • TTL टोकन, सर्टिफिकेट, शेड्यूल में तिरछा होने पर स्टॉक।
  • : मेजबानों पर सिंक्रनाइज़ेशन, समय बदलने के अधिकार के बिना कंटेनरों।
  • समय विफलता पर प्रलेखन और रनबुक, सीआई/सीडी कैलेंडर में खेल के दिन।
  • नियमित TZDB अपडेट, DST/लीप घटनाओं पर व्यवहार की जाँच।

16) एफएक्यू

प्रश्न: एनटीपी के बजाय पीटीपी की कब जरूरत है?

A: जब SLO को microsecond-tens के microsecond (दूरसंचार/HFT/उद्योग) की आवश्यकता होती है और नेटवर्क/कार्ड में हार्डवेयर लेबल के लिए समर्थन है।

प्रश्न: घड़ी तिरछा करने के लिए कितना?

A: डीसी में ठेठ NTP के लिए - दसियों से सैकड़ों ms (p99); 2 स्टॉक × लेट करें। PTP के साथ - इकाइयों के दसियों।

प्रश्न: छलांग दूसरे कैसे जीवित रहें?

A: हर जगह धब्बा और एक ही नीति का उपयोग करें; टेस्ट शेड्यूल/एग्रीगेटर और टाइमर।

प्रश्न: क्या आप समय सीमा के लिए दीवार-घड़ीपर भरोसा कर सकते हैं?

A: नहीं। मोनोटोन घंटे केवल + स्टॉक प्रति तिरछा।

प्रश्न: डेटाबेस में "समय" कैसे संग्रहीत करें?

A: UTC ('timestamptz') में, संघर्ष समाधान के लिए प्लस/HLC संस्करण; आंकड़ों में स्थानीय क्षेत्रों को संग्रहीत न करें

17) कुल

विश्वसनीय समय प्रोटोकॉल + नीति + कोड में अनुशासन है। नोड्स (NTP/NTS या PTP) सिंक्रनाइज़करें, अंतराल के लिए मोनोटोन घंटे, डेटा के लिए UTC, ऑर्डर के लिए HLC/संस्करण, तिरछा, मॉनिटर ऑफ़ सेट पर स्टॉक रखें और नियमित रूप से खेलें। यह "रहस्यमय" प्रमाणीकरण कीड़े, घटना विसंगतियों और अस्थिर एसएलओ से बचेगा।

Contact

हमसे संपर्क करें

किसी भी प्रश्न या सहायता के लिए हमसे संपर्क करें।हम हमेशा मदद के लिए तैयार हैं!

Telegram
@Gamble_GC
इंटीग्रेशन शुरू करें

Email — अनिवार्य है। Telegram या WhatsApp — वैकल्पिक हैं।

आपका नाम वैकल्पिक
Email वैकल्पिक
विषय वैकल्पिक
संदेश वैकल्पिक
Telegram वैकल्पिक
@
अगर आप Telegram डालते हैं — तो हम Email के साथ-साथ वहीं भी जवाब देंगे।
WhatsApp वैकल्पिक
फॉर्मैट: देश कोड और नंबर (उदा. +91XXXXXXXXXX)।

बटन दबाकर आप अपने डेटा की प्रोसेसिंग के लिए सहमति देते हैं।