2013-11-21 7 views
12

मैंने अभी नए 3.11 कर्नेल के साथ उबंटू 13.10 स्थापित किया है। और 3.10 में, इसमें टिकर फीचर है जहां मैं स्थानीय टाइमर द्वारा बाधित किए बिना एक प्रक्रिया चला सकता हूं, जितना पहले नहीं। मैं इस लिंक http://www.breakage.org/2013/11/nohz_fullgodmode/मैं काम करने के लिए टिकर कर्नेल कैसे प्राप्त करूं? nohz_full, rcu_nocbs, isolcpus और क्या?

मैं cpu 3 पर मेरे अनुप्रयोग चलाने के लिए योजना बनाई पीछा किया, इसलिए मैं अपने भोजन के में निम्नलिखित सेट:

isolcpus=3 nohz_full=3 rcu_nocbs=3 

रिबूट करने के बाद, ऐसा लगता है cpu 3 पर स्थानीय टाइमर बाधा वास्तव में एक है अन्य सीपीयू से बहुत कम है।

मैं भी भाग गया:

# for i in `pgrep rcu` ; do taskset -pc 0 $i ; done 

लेकिन जब मैं अपने ऐप आरंभ हो जाएंगे, स्थानीय टाइमर व्यवधान की गिनती कूद गया। मेरा ऐप एक अनंत लूप के अलावा कुछ भी नहीं करता है।

int main() { 
while (true) { 
} 
} 

तो मुझे क्या याद आ रही है? जब मैं कुछ चलाता हूं तो समय बाधित क्यों होता है? मैंने सोचा कि nohz_full का मतलब है कि केवल एक ही प्रक्रिया चल रही है, यह बाधित हो जाएगी।

जब मैं ऐप नहीं चला रहा हूं तो/proc/sched_debug का आउटपुट निम्न है और स्पष्ट रूप से उस सीपीयू पर कोई अन्य प्रक्रिया नहीं है। तो मुझे क्या याद आ रही है?

cpu#3, 2492.071 MHz 
    .nr_running     : 0 
    .load       : 0 
    .nr_switches     : 45818 
    .nr_load_updates    : 11165 
    .nr_uninterruptible   : -1 
    .next_balance     : 4295.674289 
    .curr->pid      : 0 
    .clock       : 3127610.519188 
    .cpu_load[0]     : 0 
    .cpu_load[1]     : 0 
    .cpu_load[2]     : 0 
    .cpu_load[3]     : 0 
    .cpu_load[4]     : 0 
    .yld_count      : 0 
    .sched_count     : 47377 
    .sched_goidle     : 3956 
    .avg_idle      : 1000000 
    .ttwu_count     : 29329 
    .ttwu_local     : 26078 

cfs_rq[3]:/ 
    .exec_clock     : 15750.800052 
    .MIN_vruntime     : 0.000001 
    .min_vruntime     : 15699.782432 
    .max_vruntime     : 0.000001 
    .spread      : 0.000000 
    .spread0      : -247950.011716 
    .nr_spread_over    : 0 
    .nr_running     : 0 
    .load       : 0 
    .runnable_load_avg    : 0 
    .blocked_load_avg    : 0 
    .tg_load_contrib    : 0 
    .tg_runnable_contrib   : 0 
    .tg_load_avg     : 602 
    .tg->runnable_avg    : 592 
    .avg->runnable_avg_sum   : 0 
    .avg->runnable_avg_period  : 47077 

rt_rq[3]:/ 
    .rt_nr_running     : 0 
    .rt_throttled     : 0 
    .rt_time      : 0.000000 
    .rt_runtime     : 950.000000 

runnable tasks: 
      task PID   tree-key switches prio  exec-runtime   sum- exec  sum-sleep 
---------------------------------------------------------------------------------------- ------------------ 
+0

आरएचईएल 7 के लिए ये लिंक सहायक हो सकते हैं: https://access.redhat.com/solutions/15482 https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Performance_Tuning_Guide/sect -Red_Hat_Enterprise_Linux-Performance_Tuning_Guide-CPU-Configuration_suggestions.html – javapowered

उत्तर

3

ठीक है, मैंने पाया कि मुझे कॉन्फ़िगरेशन चालू करने के लिए अपना स्वयं का कर्नेल बनाने की आवश्यकता है।

+0

ठीक है, और अब बक्षीस के बारे में क्या? (साथ ही, कृपया मुझे सूचित करें क्योंकि मैं मैन्युअल रूप से उत्तर की जांच नहीं करता) – user2284570

+0

@ user2284570 आपके पास एक अलग उत्तर है? – Ming

संबंधित मुद्दे

 संबंधित मुद्दे