सवाल व्यक्तिगत विंडोज सेवाओं के स्मृति उपयोग कैसे प्राप्त करें?


कार्य प्रबंधक svchost.exe का समग्र स्मृति उपयोग दिखाता है। क्या व्यक्तिगत सेवाओं के स्मृति उपयोग को देखने का कोई तरीका है?


ध्यान दें यह समान है Svchost.exe पर Finegrained प्रदर्शन रिपोर्टिंग


39
2018-05-26 15:44


मूल


किसी के लिए (मेरे जैसा) एक ही समस्या है: - विंडोज टास्क मैनेजर -> प्रदर्शन (टैब) -> संसाधन मॉनीटर (बटन) - और आपको सर्विस द्वारा svchost.exe विभाजन मिलता है विंडोज 7 पर - Oliver
@ ऑलिवर रिसोर्स मॉनीटर सीपीयू प्रति सेवा दिखाता है, लेकिन यह सवाल मेमोरी के बारे में है। - Aidan Ryan
आप व्यक्तिगत सेवाओं की स्मृति की जांच करने के लिए एक स्क्रिप्ट देख सकते हैं यह SO जवाब। - Rosberg Linhares
@RosbergLinhares यह स्क्रिप्ट पीटरमोर्टेन्सन के बराबर है - Aidan Ryan
@AidanRyan, मेरे लिए पीटरमोर्टेन्सन की लिपि अनुसूची और जीपीएसवीसी सेवाओं के साथ काम नहीं करती थी। - Rosberg Linhares


जवाब:


आपके द्वारा पूछे जा रहे जानकारी को प्राप्त करने का एक आसान तरीका है के लिए (लेकिन इसके लिए आपके सिस्टम में थोड़ा बदलाव की आवश्यकता है):

अपनी सेवा को अपनी स्वयं की SVCHOST.EXE प्रक्रिया में चलाने के लिए विभाजित करें और सीपीयू चक्रों का उपभोग करने वाली सेवा आसानी से दिखाई देगी कार्य प्रबंधक या प्रक्रिया एक्सप्लोरर में ("=" के बाद की जगह आवश्यक है):

SC Config Servicename Type= own

इसे कमांड लाइन विंडो में करें या इसे बीएटी में डालें स्क्रिप्ट। प्रशासनिक विशेषाधिकारों की आवश्यकता है और कंप्यूटर से पुनरारंभ करने से पहले इसे पुनरारंभ करना आवश्यक है प्रभाव।

मूल स्थिति को बहाल किया जा सकता है:

SC Config Servicename Type= share

उदाहरण: विंडोज प्रबंधन इंस्ट्रुमेंटेशन को चलाने के लिए अलग SVCHOST.EXE:

SC Config winmgmt Type= own

शायद इस तकनीक को कोई बुरा प्रभाव नहीं पड़ता है, शायद बढ़ रहा है स्मृति खपत थोड़ा। और सीपीयू देखने के अलावा प्रत्येक सेवा के लिए उपयोग यह पृष्ठ का पालन करना भी आसान बनाता है दोष डेल्टा, डिस्क I / O पढ़ने की दर और डिस्क I / O लिखने की दर के लिए प्रत्येक सेवा। प्रक्रिया एक्सप्लोरर के लिए, मेनू देखें / कॉलम का चयन करें:   टैब प्रक्रिया मेमोरी / पेज फाल्ट डेल्टा,   टैब प्रक्रिया प्रदर्शन / आईओ डेल्टा बाइट लिखें,   टैब प्रक्रिया प्रदर्शन / आईओ डेल्टा पढ़ें बाइट्स, क्रमशः।


अधिकांश प्रणालियों पर केवल एक SVCHOST.EXE प्रक्रिया होती है बहुत सारी सेवाएं हैं मैंने इस अनुक्रम का उपयोग किया है (यह हो सकता है सीधे एक कमांड लाइन विंडो में चिपकाया):

rem  1. "Automatic Updates"
SC Config wuauserv Type= own

rem  2. "COM+ Event System"
SC Config EventSystem Type= own

rem  3. "Computer Browser"
SC Config Browser Type= own

rem  4. "Cryptographic Services"
SC Config CryptSvc Type= own

rem  5. "Distributed Link Tracking"
SC Config TrkWks Type= own

rem  6. "Help and Support"
SC Config helpsvc Type= own

rem  7. "Logical Disk Manager"
SC Config dmserver Type= own

rem  8. "Network Connections"
SC Config Netman Type= own

rem  9. "Network Location Awareness"
SC Config NLA Type= own

rem 10. "Remote Access Connection Manager"
SC Config RasMan Type= own

rem 11. "Secondary Logon"
SC Config seclogon Type= own

rem 12. "Server"
SC Config lanmanserver Type= own

rem 13. "Shell Hardware Detection"
SC Config ShellHWDetection Type= own

rem 14. "System Event Notification"
SC Config SENS Type= own

rem 15. "System Restore Service"
SC Config srservice Type= own

rem 16. "Task Scheduler"
SC Config Schedule Type= own

rem 17. "Telephony"
SC Config TapiSrv Type= own

rem 18. "Terminal Services"
SC Config TermService Type= own

rem 19. "Themes"
SC Config Themes Type= own

rem 20. "Windows Audio"
SC Config AudioSrv Type= own

rem 21. "Windows Firewall/Internet Connection Sharing (ICS)"
SC Config SharedAccess Type= own

rem 22. "Windows Management Instrumentation"
SC Config winmgmt Type= own

rem 23. "Wireless Configuration"
SC Config WZCSVC Type= own

rem 24. "Workstation"
SC Config lanmanworkstation Type= own

rem End.

49
2018-06-07 11:53



PowerShell उपयोगकर्ताओं के लिए वहां: गेट-सेवा | ForEach-Object {C: \ Windows \ System32 \ SC.EXE कॉन्फ़िगर $ _। नाम का प्रकार = स्वयं} - Tom Wijsman
असल में, मैं आमतौर पर 3 या 4 उदाहरणों को नोटिस करता हूं svchost.exe विंडोज एक्सपी सिस्टम पर। इस पर मैं 6 देखता हूं। - SamB
@ टॉमविज: रहो अत्यंत इस स्निपेट का उपयोग करते समय सावधान रहें - यदि आप ईएफएस (फ़ाइल सिस्टम एन्क्रिप्ट करना) का उपयोग कर रहे हैं और इसे सेट करें type= own यह सही ढंग से काम नहीं कर सकता है और आपको इसके साथ एन्क्रिप्टेड किसी भी फाइल तक पहुंच के बिना छोड़ा जाएगा (यदि ओएस फाइल एन्क्रिप्टेड हैं तो विनाशकारी हो सकता है!) - Beau
@ बेउ: क्या आप जानते हैं क्यों स्पष्ट रूप से? - Tom Wijsman
@ पीटर मोर्टेंसन: मैंने बनाया है सेवा प्रकटीकरण उपकरण। यह 1. स्टोर सेवाएं जो svchost.exe प्रक्रिया साझा करती हैं। 2. अलग प्रक्रिया में चलाने के लिए सेवाओं को कॉन्फ़िगर करता है। 3. चरण # 1 सेवाओं पर संग्रहीत सभी को एक प्रक्रिया में वापस लौटाता है। आपकी टिप्पणियों और सुझावों का स्वागत है। विचार के लिए धन्यवाद। - Dmytro Ovdiienko


आप अंतर्निर्मित का उपयोग कर सकते हैं tasklist सेवा नाम से कमांड और फ़िल्टर करें (/fi स्विच), उदाहरण के लिए:

 tasklist /fi "services eq TermService"

आउटपुट:

छवि का नाम पीआईडी ​​सत्र नाम सत्र # मेम उपयोग
================================================= = ========== ============
svchost.exe 2 9 40 कंसोल 0 7.096 के

यदि आपको कोई नाम नहीं पता है, तो आप इस कथन को चलाकर उन्हें सूचीबद्ध कर सकते हैं:

 tasklist /svc /fi "imagename eq svchost.exe"

यह svchost.exe द्वारा होस्ट की गई सभी सेवाओं को सूचीबद्ध करता है, उदाहरण के लिए:

छवि का नाम पीआईडी ​​सेवाएं
================================================== ===========================
svchost.exe 632 DcomLaunch
svchost.exe 684 आरपीसीएस
svchost.exe 748 Dhcp, Dnscache
svchost.exe 788 LmHosts, W32Time
svchost.exe 804 AeLookupSvc, ऑडियोएसआरवी, ब्राउज़र, CryptSvc,
                                   डीएमएस सर्वर, इवेंट सिस्टम, हेल्पवैक,
                                   Lanmanserver, lanmanworkstation, मैसेंजर,
                                   नेटमैन, नला, रसमन, अनुसूची, seclogon,
                                   सेन्स, शैलहडडेक्शन, ट्रेकवक्स, winmgmt,
                                   Wuauserv, WZCSVC
svchost.exe 1140 ईआरएसवीसी
svchost.exe 1712 रिमोट रजिस्ट्री
svchost.exe 1 9 6 डब्ल्यू 3 एसवीसी
svchost.exe 2940 टर्म सेवा
svchost.exe 2420 TapiSrv

सेवाओं की आवश्यकता नहीं है svchost.exe। इसलिए, यदि आप निष्पादन फ़ाइल नाम द्वारा एक सेवा फ़िल्टरिंग नहीं पा रहे हैं, तो बस चलाएं tasklist /svc। यह सभी सेवाओं को दिखाएगा।


17
2018-05-26 17:35



प्रश्न में अनुरोध के अनुसार, यह किसी व्यक्तिगत सेवा द्वारा उपयोग की जाने वाली स्मृति को प्रदर्शित नहीं करता है। - Duncan Jones


प्रोसेस एक्सप्लोरर वास्तव में आपको svchost के भीतर व्यक्तिगत मेमोरी उपयोग दिखाएगा सुनिश्चित करें कि आपके पास यहां से नवीनतम संस्करण है http://technet.microsoft.com/en-us/sysinternals/bb896653

प्रक्रिया एक्सप्लोरर को व्यवस्थापक के रूप में चलाने के लिए सुनिश्चित करें, उस svchost पर क्लिक करें जिसे आप निरीक्षण करना चाहते हैं, क्लिक करें View DLLs बटन (या CTRL + D)। डीएलएल विंडो में शीर्षलेखों पर राइट क्लिक करें, Select Columns..., तो जाँच WS Total Bytes, और हिट OK

अब आप svchost के भीतर व्यक्तिगत सेवाओं (डीएलएस द्वारा कार्यान्वित) के स्मृति उपयोग को देख और क्रमबद्ध कर सकते हैं।


6
2017-12-30 16:47



यह ढेर आकार नहीं दिखाता है। - Der_Meister


जबकि प्रोसेस मॉनिटर एक सामान्य उद्देश्य उपयोगिता है (जो आपके लिए सब कुछ करेगी लेकिन आपके लिए व्यंजन धोएगी), इस विशेष प्रश्न के लिए आप वीएमएपी (एक और SysInternals उपयोगिता) का उपयोग करना चाहते हैं

http://technet.microsoft.com/en-us/sysinternals/dd535533.aspx

वीएमएपी एक प्रक्रिया आभासी और भौतिक स्मृति विश्लेषण उपयोगिता है। यह एक प्रक्रिया के प्रतिबद्ध वर्चुअल मेमोरी प्रकारों के साथ-साथ ऑपरेटिंग सिस्टम द्वारा आवंटित भौतिक स्मृति (कार्य सेट) की मात्रा को तोड़ देता है। स्मृति उपयोग के ग्राफिकल प्रस्तुतियों के अलावा, वीएमएपी सारांश जानकारी और एक विस्तृत प्रक्रिया मेमोरी मानचित्र भी दिखाता है। शक्तिशाली फ़िल्टरिंग और रीफ्रेश क्षमताओं से आप प्रक्रिया मेमोरी उपयोग और एप्लिकेशन सुविधाओं की स्मृति लागत के स्रोतों की पहचान कर सकते हैं।

लाइव प्रक्रियाओं का विश्लेषण करने के लिए लचीले विचारों के अलावा, वीएमएपी कई रूपों में डेटा के निर्यात का समर्थन करता है, जिसमें एक मूल प्रारूप शामिल है जो सभी जानकारी को सुरक्षित रखता है ताकि आप वापस लोड कर सकें। इसमें कमांड लाइन विकल्प भी शामिल हैं जो स्क्रिप्टिंग परिदृश्य को सक्षम करते हैं। 


5
2018-06-07 17:23



ठंडा! अब उस व्यक्तिगत सेवा के लिए ढेर मेमोरी के ब्लॉक के उपयोग का पता लगाने का कोई तरीका है? - Aidan Ryan


यह स्टैक ओवरफ्लो क्षेत्र में हो रहा है, लेकिन यदि आप प्रति-थ्रेड मेमोरी आंकड़ों को पकड़ सकते हैं तो आप थ्रेड स्टैक में सूचीबद्ध डीएलएस तक मिलान करके व्यक्तिगत सेवा डीएलएस से लगभग सहसंबंध कर सकते हैं। हालांकि, मेरे छोटे sysadmin मस्तिष्क के लिए रास्ता बहुत अधिक है।


2
2018-05-26 16:51





मैं यहां पीटर मोर्टेंसन का जवाब बढ़ाता हूं। सेवाओं के प्रकार को संशोधित करने से पहले, कृपया मौजूदा प्रकार को कमांड द्वारा जांचें जैसे:

sc query wuauserv

अनुवर्ती आउटपुट कौन सा होगा:

    TYPE               : 20  WIN32_SHARE_PROCESS
    STATE              : 1  STOPPED
    WIN32_EXIT_CODE    : 0  (0x0)
    SERVICE_EXIT_CODE  : 0  (0x0)
    CHECKPOINT         : 0x0
    WAIT_HINT          : 0x0

"10 WIN32_OWN_PROCESS" के अलावा कोई भी प्रकार, "20 WIN32_SHARE_PROCESS" संशोधित नहीं किया जाना चाहिए।


1
2018-03-10 06:59





सेवाओं को अलग करना सही उत्तर है, लेकिन एससी कॉन्फ़िगर कमांड मेरे लिए काम नहीं करता है (2008 आर 2)।

आप इसे रजिस्ट्री के माध्यम से कर सकते हैं, जिसका अर्थ है "टाइप" पैरामीटर को 0x00000010 (dec। 16) पर सेट करना:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\<ServiceName>\Type

सावधान रहें कि आप कौन सी सेवा को संशोधित करना चुनते हैं, इसके अलावा "स्वयं" और "शेयर" के अलावा विशेष प्रकार हैं जिन्हें बदला नहीं जाना चाहिए, जैसे:

  • गुठली
  • filesys
  • आरईसी
  • अनुकूल बनाना

उसके बाद, बस सेवा को पुनरारंभ करें और आपको ProcessExplorer में देखना चाहिए कि अब इसकी अपनी svchost.exe प्रक्रिया है।


0
2018-02-26 17:31