1000 HZ लिनक्स कर्नेल आवश्यक है अगर मेरे पास टिक रहित और उच्च रिज़ॉल्यूशन टाइमर है?


13

मैं अपने सर्वर पर प्रदर्शन में सुधार करने की कोशिश कर रहा हूं। मेरे पास कुछ प्रक्रियाएं हैं जिनमें कम घबराना (10ms से कम विचरण) की आवश्यकता होती है।

मेरे पास i7-920 पर 4 अधिकतम का लोड औसत है (4 भौतिक कोर, 8 एचटी के साथ)। लगभग 10 प्रक्रियाएं हैं जो एक मुख्य उपयोगकर्ता मोड के 40% से 90% तक हैं। सिस्टम का उपयोग कुल 3% है। कुल CPU उपयोग 80% अधिकतम है।

क्या 100hz से 1000hz तक कर्नेल सेट करने से घबराहट में सुधार होगा यदि टिकलेस और उच्च रिज़ॉल्यूशन टाइमर पहले से सेट हैं?

यह पृष्ठ इंगित करता है कि यह अभी भी कुछ करता है। https://lkml.org/lkml/2009/4/28/401

स्वैच्छिक (PREEMPT_VOLUNTARY) से प्रीमेप्टिबल (PREEMPT) में परिवर्तन के बारे में कैसे?


OS वितरण विवरण / संस्करण?
इविविट

Ubuntu 11.10 64 बिट सर्वर लिनक्स 3.3 कर्नेल।
बॉब

आपके पास बहुत सारे उपयोगकर्ता मोड लोड हैं; सिस्टम का समय तुलनात्मक रूप से नगण्य है। मैं वहां पर कर्नेल ट्यूबल्स के आसपास नृत्य करने का सुझाव नहीं दूंगा। या realtime की तरह समयबद्धन प्राप्त करने के लिए आप क्या हासिल करने की उम्मीद है?
yrk

तो क्या आप कह रहे हैं कि यदि सिस्टम का उपयोग कम है, तो इससे कोई भी जवाबदेही पर फर्क नहीं पड़ता है?
बॉब

जवाबों:


4

मैं अपने सर्वर पर प्रदर्शन में सुधार करने की कोशिश कर रहा हूं। मेरे पास कुछ प्रक्रियाएं हैं जिनमें कम घबराना (10ms से कम विचरण) की आवश्यकता होती है।

किसी भी वास्तविक समय में प्रदर्शन में सुधार नहीं होगा, यह पूरी प्रणाली को सुचारू रूप से चलने वाला लेकिन थोड़ा धीमा बना देगा। दूसरे शब्दों में, यह थ्रूपुट बनाम विलंबता है। यदि यह वास्तव में आपको क्या चाहिए, तो कई विकल्प:

  • 300 हर्ट्ज या यहां तक ​​कि 1KHz, PREEMPT का उपयोग करें, और टिक रहित का उपयोग न करें
  • का प्रयोग करें nice, schedtoolअपनी आवश्यकताओं के अनुसार उचित प्राथमिकताओं / कक्षाएं आवंटित करने के लिए
  • RT या BFS को एक प्रयास दें

गुदगुदी का उपयोग करने में क्या गलत है?
बॉब

1
@Bob, यह अच्छा बिजली की बचत के लिए है, लेकिन मामला आप विलंबता के बारे में परवाह है, यह बंद हो सकता है, के लिए अनुशंसा की जाती है जैसे ck.kolivas.org/patches/bfs/bfs-configuration-faq.txt
poige

3

यदि कम घबराना आपके लिए महत्वपूर्ण है, तो हाँ, आप 1000hz और PREEMPT दोनों का उपयोग करना चाह सकते हैं।

यदि वे प्रक्रियाएं वास्तव में समय के प्रति संवेदनशील हैं, तो सोचा, आपको शायद कुछ और रियलटाइम-उन्मुख पैच / कर्नेल की आवश्यकता होगी, या कम से कम कुछ प्रक्रिया-स्तरीय शेड्यूलिंग पैरामीटर, जैसे rtprio।

विशिष्ट उपयोग ऑडियो सर्वर हैं, उदाहरण के लिए jackaudio की सलाह देखें


3

1) गुदगुदी का उपयोग न करें, यह अभी भी बहुत प्रयोगात्मक है और किसी के लिए अनुशंसित नहीं है, लेकिन डेवलपर्स इस पर काम कर रहे हैं, यह भी पॉवरवेव को मदद करने के लिए है।

2) पूरी तरह से प्रीमेटेबल सिस्टम को डेस्कटर की जवाबदेही बढ़ाने के लिए माना जाता है, जबकि स्वैच्छिक प्रीमेचेबल सामान्य उपयोग (जवाबदेही और ट्रॉटपुट के मिश्रण) के लिए है। यदि आपके सर्वर को एसएमपी (एकाधिक कोर) मिला है, तो आपको संभवतः गैर-अप्रचलित के लिए जाना चाहिए, क्योंकि अधिकांश कार्य उनके कोर पर और बिना किसी रुकावट के निष्पादित किए जाएंगे, जो आम तौर पर 1) समय 2 लेते हैं) ट्रैश कैश

3) 1000 हर्ट्ज डेस्कटॉप मूल्य है जो ओवरहेड का परिचय देता है, लेकिन उदाहरण के लिए गेम और सामान खेलने की अनुमति देता है। 300 हर्ट्ज मूल्य है जो वीडियो के लिए अनुशंसित है (इसलिए सामान को फिर से जोड़ा जा सकता है और आप अभी भी फ़्रेम को याद नहीं करेंगे), जबकि 100 हर्ट्ज सर्वश्रेष्ठ ट्रॉपुट (हालांकि न्यूनता नेटवर्क सामान के लिए तैयार नहीं) प्रदान करता है।

यदि आप स्थिर हो जाना चाहते हैं (आरटी पैच का उपयोग किए बिना), तो आपको जाना चाहिए: आवधिक टिक (स्थिरता) गैर-प्रीमीटेबल (स्थिरता) टाइमर-आवृत्ति (आपके ऊपर, सर्वोत्तम जवाबदेही के लिए 1000 और कम अक्षांशों के लिए, 100) टाइमर पर सबसे अच्छा troughput लेकिन 10ms संकल्प, उदाहरण के लिए सामान कम से कम 10ms चलेगा)

आशा है कि यह कुछ हद तक मदद करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.