मैंने अभी नए 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
---------------------------------------------------------------------------------------- ------------------
आरएचईएल 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