आरसीयूओ / आरसीओओबी प्रक्रियाएं जो मैं शीर्ष में देख रहा हूं?


59

मैं शीर्ष भाग गया, और मुझे बहुत सारे आरसीयूएस / आरसीयूओबी प्रक्रियाएँ दिखाई दीं। यहाँ शीर्ष उत्पादन का एक नमूना है:

top - 21:41:15 up 22 days, 19:20,  1 user,  load average: 0.00, 0.01, 0.05
Tasks: 332 total,   1 running, 331 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni, 99.9%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  32910904k total,  2232224k used, 30678680k free,   246636k buffers
Swap: 33517564k total,        0k used, 33517564k free,  1048244k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 3098 root      20   0 11.8g 113m 9.9m S    1  0.4  67:57.98 asterisk
   12 root      20   0     0    0    0 S    0  0.0   0:53.61 rcuos/3
 1130 root      39  19     0    0    0 S    0  0.0  78:26.78 kipmi0
 1735 root      20   0 15988  740  540 S    0  0.0  17:34.69 irqbalance
 1875 zabbix    20   0 89416 2472 1828 S    0  0.0  12:55.47 zabbix_agentd
    1 root      20   0 24316 2288 1336 S    0  0.0   0:05.06 init
    2 root      20   0     0    0    0 S    0  0.0   0:00.25 kthreadd
    3 root      20   0     0    0    0 S    0  0.0   0:02.40 ksoftirqd/0
    5 root       0 -20     0    0    0 S    0  0.0   0:00.00 kworker/0:0H
    6 root      20   0     0    0    0 S    0  0.0   0:00.00 kworker/u48:0
    8 root      20   0     0    0    0 S    0  0.0   4:55.92 rcu_sched
    9 root      20   0     0    0    0 S    0  0.0   1:31.03 rcuos/0
   10 root      20   0     0    0    0 S    0  0.0   0:54.04 rcuos/1
   11 root      20   0     0    0    0 S    0  0.0   0:53.16 rcuos/2
   13 root      20   0     0    0    0 S    0  0.0   0:45.96 rcuos/4
   14 root      20   0     0    0    0 S    0  0.0   0:41.84 rcuos/5
   15 root      20   0     0    0    0 S    0  0.0   0:02.56 rcuos/6
   16 root      20   0     0    0    0 S    0  0.0   0:07.25 rcuos/7
   17 root      20   0     0    0    0 S    0  0.0   0:12.06 rcuos/8
   18 root      20   0     0    0    0 S    0  0.0   0:12.14 rcuos/9
   19 root      20   0     0    0    0 S    0  0.0   0:11.21 rcuos/10
   20 root      20   0     0    0    0 S    0  0.0   0:05.66 rcuos/11
   21 root      20   0     0    0    0 S    0  0.0   1:39.42 rcuos/12
   22 root      20   0     0    0    0 S    0  0.0   0:35.66 rcuos/13
   23 root      20   0     0    0    0 S    0  0.0   0:26.46 rcuos/14
   24 root      20   0     0    0    0 S    0  0.0   0:00.88 rcuos/15
   25 root      20   0     0    0    0 S    0  0.0   0:00.30 rcuos/16
   26 root      20   0     0    0    0 S    0  0.0   0:31.93 rcuos/17
   27 root      20   0     0    0    0 S    0  0.0   0:18.58 rcuos/18
   28 root      20   0     0    0    0 S    0  0.0   0:20.53 rcuos/19
   29 root      20   0     0    0    0 S    0  0.0   0:44.95 rcuos/20
   30 root      20   0     0    0    0 S    0  0.0   0:01.92 rcuos/21
   31 root      20   0     0    0    0 S    0  0.0   0:00.24 rcuos/22
   32 root      20   0     0    0    0 S    0  0.0   0:05.01 rcuos/23
   33 root      20   0     0    0    0 S    0  0.0   0:00.00 rcu_bh
   34 root      20   0     0    0    0 S    0  0.0   0:00.00 rcuob/0
   35 root      20   0     0    0    0 S    0  0.0   0:00.00 rcuob/1
   36 root      20   0     0    0    0 S    0  0.0   0:00.00 rcuob/2
   37 root      20   0     0    0    0 S    0  0.0   0:00.00 rcuob/3
   38 root      20   0     0    0    0 S    0  0.0   0:00.00 rcuob/4
   39 root      20   0     0    0    0 S    0  0.0   0:00.00 rcuob/5
   40 root      20   0     0    0    0 S    0  0.0   0:00.00 rcuob/6
   41 root      20   0     0    0    0 S    0  0.0   0:00.00 rcuob/7
   42 root      20   0     0    0    0 S    0  0.0   0:00.00 rcuob/8
   43 root      20   0     0    0    0 S    0  0.0   0:00.00 rcuob/9
   44 root      20   0     0    0    0 S    0  0.0   0:00.00 rcuob/10
   45 root      20   0     0    0    0 S    0  0.0   0:00.00 rcuob/11
   46 root      20   0     0    0    0 S    0  0.0   0:00.00 rcuob/12
   47 root      20   0     0    0    0 S    0  0.0   0:00.00 rcuob/13
   48 root      20   0     0    0    0 S    0  0.0   0:00.00 rcuob/14
   49 root      20   0     0    0    0 S    0  0.0   0:00.00 rcuob/15
   50 root      20   0     0    0    0 S    0  0.0   0:00.00 rcuob/16
   51 root      20   0     0    0    0 S    0  0.0   0:00.00 rcuob/17
   52 root      20   0     0    0    0 S    0  0.0   0:00.00 rcuob/18
   53 root      20   0     0    0    0 S    0  0.0   0:00.00 rcuob/19
   54 root      20   0     0    0    0 S    0  0.0   0:00.00 rcuob/20
   55 root      20   0     0    0    0 S    0  0.0   0:00.00 rcuob/21
   56 root      20   0     0    0    0 S    0  0.0   0:00.00 rcuob/22
   57 root      20   0     0    0    0 S    0  0.0   0:00.00 rcuob/23
   58 root      RT   0     0    0    0 S    0  0.0   0:00.87 migration/0
   59 root      RT   0     0    0    0 S    0  0.0   0:08.47 watchdog/0
   60 root      RT   0     0    0    0 S    0  0.0   0:08.41 watchdog/1

ये प्रक्रियाएं क्या हैं?


मुझे लगता है कि ये प्रक्रिया RCU से संबंधित कर्नेल प्रक्रिया है । यहाँ पर उपयोगी लिंक दिया गया है: लिनक्स कर्नेल को कॉन्फ़िगर करते समय RCU को समझना और आपके यहाँ समान प्रश्न ।
०२:१६ पर लेटी

@sonicboom - अच्छी पोस्टिंग - इसके बारे में क्या एक तरह का वॉचिंग-टूल भी हो सकता है, इस बारे में कि क्या कोई कोडर कुछ कोड करने में सक्षम है? (ibm द्वारा लिखित?) ... - क्या यह स्नोडेन के लिए एक नया मामला है?
dschinn1001

जवाबों:


40

इसे समझाने वाला प्रमुख लेख यहां है: https://lwn.net/Articles/522262/

तेजी से सिंक्रनाइज़ेशन के लिए, कर्नेल में कई संरचनाएं "आरसीयू", या रीड-कॉपी-अपडेट हैं। कई थ्रेड्स बिना किसी अवरोध के एक साथ पढ़ सकते हैं, और थ्रेड जो संरचना को बदलना चाहते हैं, वे संबंधित डेटा को एक नए स्थान पर कॉपी करके और संदर्भ को बदलकर ("हटाने") कर सकते हैं। हालाँकि, पुराने डेटा को कुछ समय तक जीवित रहना चाहिए ताकि पढ़ने वाले थ्रेड अपना काम पूरा कर सकें। जब पुराना डेटा अब पाठकों के पास काम नहीं कर रहा है, तो इसे अंत में हटा दिया जा सकता है ("पुनर्स्मरण")।

Rcuos, rcuob थ्रेड्स इस प्रक्रिया के पुनर्ग्रहण भाग को संभालने के लिए हैं। यह सॉफ्टवेयर IRQ के एक भाग के रूप में संभाला जाता था, जिसका अर्थ था कि यह प्रोसेसर शक्ति को महत्वपूर्ण उपयोगकर्ता प्रक्रियाओं से दूर के समय में ले जा सकता है। इसे समर्पित आरसीयू ** थ्रेड्स के एक समूह में ले जाकर, इस रिक्लेमेशन प्रक्रिया को कम घुसपैठ बनाने के लिए सिस्टम को ट्यून किया जा सकता है।

ओएस जिटर को कम करना इन थ्रेड्स का उद्देश्य नहीं है, हालांकि यह मुख्य कारण हो सकता है जो वे मौजूद हैं।


16

Ubuntuforums के अनुसार वे "OS OS कम करें" से आ रहे हैं जिसे निम्नलिखित कर्नेल फ़्लैग द्वारा चालू किया गया है

CONFIG_RCU_NOCB_CPU
CONFIG_RCU_NOCB_CPU_ALL
CONFIG_RCU_STALL_COMMON
CONFIG_RCU_USER_QS

13.10 (Saucy) के बाद से वे डिफ़ॉल्ट रूप से सक्षम हैं।

देख:

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