क्रोम की कुल मेमोरी का उपयोग करें


28

चूंकि Google क्रोम / क्रोमियम कई प्रक्रियाओं को जन्म देता है, इसलिए यह देखना कठिन है कि ये प्रक्रिया कुल मेमोरी का कितना उपयोग करती है।

क्या यह देखने का एक आसान तरीका है कि कुल मेमोरी कितने कनेक्टेड प्रक्रियाओं की एक श्रृंखला का उपयोग कर रही है?


अगर मैं KiB से GiB तक प्रिंट करने वाले नंबरों को कन्वर्ट करता हूं तो Res के लिए भी। मेमोरी I में मशीन की मात्रा से अधिक RAM प्लस स्वैप है। तो ऐसा लगता है जैसे कुछ अति हो रही है।
रयान १29२

जवाबों:


30

यह देखते हुए कि मार्च 2016 में गूगल ने क्रोम को मार दिया: // मेमोरी , मैं अब स्मैम का उपयोग कर रहा हूं :

# detailed output, in kB apparently
smem -t -P chrom
# just the total PSS, with automatic unit:
smem -t -k -c pss -P chrom | tail -n 1
  • chromपूर्ण पथ द्वारा प्रतिस्थापित करने के लिए अधिक सटीक होना उदाहरण के लिए /opt/google/chromeया/usr/lib64/chromium-browser
  • यह मल्टीप्रोसेस फ़ायरफ़ॉक्स (e10s) के लिए समान कार्य करता है -P firefox
  • सावधान रहें, smem आउटपुट में ही रिपोर्ट करता है, मेरे सिस्टम पर एक अतिरिक्त ~ 10-20M।
  • शीर्ष के विपरीत इसे रूट प्रक्रियाओं की सटीक निगरानी के लिए रूट एक्सेस की आवश्यकता होती है - इसके लिए उपयोग करें sudo smem
  • देखना यह तो जवाब क्यों smem एक अच्छा उपकरण और कैसे उत्पादन को पढ़ने के लिए है के बारे में अधिक जानकारी के लिए।

मुझे यकीन नहीं है कि यह मेरे लिए काम कर रहा है। जब मैं दूसरी कमांड चलाता हूं, तो मुझे लौटाया गया मान मिलता है 338.0M। यह बहुत कम है। जब मैं सिस्टम मॉनिटर चलाता हूं, तो मैं देख सकता हूं कि 11 क्रोम प्रक्रियाएं हैं और प्रत्येक 70 एमबी और 400 एमबी रैम के बीच ले जा रहा है। सुनिश्चित नहीं है कि सिस्टम मॉनिटर गलत रिपोर्ट कर रहा है या नहीं।
साठफुटेरसूड

काली लिनक्स 2017.1 वितरण पर smem के लिए समान समस्या, आउटपुट 800 है RAM का उपयोग क्रोम द्वारा 5 उदाहरणों और कम से कम 30 टैब के साथ किया जाता है ... और सिस्टम मॉनिटर smem के साथ भी सहमत नहीं है। क्या किसी को इसका हल मिला है ? (उत्तर और संदर्भ के लिए धन्यवाद)
matthieusb

1
आपकी टिप्पणी एक अलग प्रश्न के लायक है (परस्पर विरोधी कार्यक्रमों के पूर्ण उत्पादन के साथ)। बस लिंक को टिप्पणी में पोस्ट करें।
eddygeek

1
मैं chromeसिर्फ chormइसलिए उपयोग करूंगा क्योंकि अगर आप क्रोम और क्रोमियम दोनों चला रहे हैं, तो आप दोनों के लिए कुल देख रहे हैं।
आरजे

1
आप smemकुछ जैसे [c]hrome, का उपयोग करके अपने स्वयं के आउटपुट से बाहर कर सकते हैं smem -tkP '[c]hrome'। यह cचौकोर कोष्ठकों के अंदर मेल करके काम करता है न कि स्वयं कोष्ठक में।
wjandrea

3

मुझे यकीन है कि यह सबसे अच्छा समाधान नहीं है, फिर भी यह मेरे लिए काम करता है:

#!/bin/sh
ps aux | grep "[/]opt/google/chrome/chrome" | awk '{print $5}' | awk '{sum += $1 } END { print sum }' 
ps aux | grep "[/]opt/google/chrome/chrome" | awk '{print $6}' | awk '{sum += $1 } END { print sum }' 

नोट: [/]opt/google/chrome/chromeयदि आप Mac OS X (बस grep "chrome"काम करेंगे) पर हैं, तो अपने सिस्टम के लिए उपयुक्त किसी चीज़ में परिवर्तन करें ।


1
यह "काम करता है" इसमें एक नंबर प्रिंट होता है। हालाँकि यह संख्या सभी उपयोगी नहीं है क्योंकि कई प्रक्रियाओं के बीच साझा की जाने वाली मेमोरी को कई बार गिना जाता है।
गिल्स एसओ- बुराई को रोकें '

मैं वास्तविकता में कल्पना करता हूं कि यह अभी भी काफी अच्छा है क्योंकि क्रोम अब तक विशिष्ट डेस्कटॉप पर सबसे बड़ी मेमोरी हॉग है और जब आप क्रोम प्रक्रियाओं को मारते हैं तो आपका सिस्टम तेजी से धधकने लगता है।
श्रीधर सरनोबत

दो awkआज्ञा क्यों ? यानी सिर्फ क्यों नहीं ... | awk '{sum += $6} END {print sum}'?
वेजेंड्रिया

2
FWIW, यहाँ एक छोटा, स्पष्ट संस्करण है:ps aux | grep "/opt/google/chrome/chrome" | awk '{vsz += $5; rss += $6} END { print "vsz="vsz, "rss="rss }'
wjandrea

1
@ रूशी परेशान मत करो। यह समाधान एक सार्थक संख्या नहीं देता है। smemशीर्ष उत्तर के अनुसार उपयोग करें । हालांकि एफडब्ल्यूआईडब्ल्यू, मैं इसे एक स्क्रिप्ट या फ़ंक्शन के रूप में लागू करूंगा, क्योंकि यह एक उपनाम के लिए बहुत जटिल है।
wjandrea

2

इसे चलाना:

perl -e '$a="x"x1000000000;sleep(10);print"done\n"'

1.8GB रैम लेता है। तो आप इसे चलाने की उम्मीद करेंगे:

perl -e '$a="x"x1000000000;fork;fork;fork;fork;sleep(10);print"done\n"'

के रूप में 16 गुना अधिक ले जाएगा। लेकिन ऐसा नहीं है।

यह लिनक्स कर्नेल की बुद्धिमान कॉपी-ऑन-राइट के कारण है: क्योंकि '$ a' की सामग्री नहीं बदलती है, तो '$ a' की मेमोरी साझा की जा सकती है। लेकिन यह केवल तब तक साझा रहेगा जब तक '$ a' को बदल नहीं दिया जाता। जब ऐसा होता है, तो परिवर्तित अनुभाग कॉपी किया जाएगा और रैम लेना शुरू कर देगा।

क्या आप यह माप सकते हैं कि कितनी मेमोरी कॉपी-ऑन-राइट ओवर-कमिटेड है, मुझे नहीं पता। लेकिन कम से कम यह आपकी अति-गिनती की व्याख्या करता है।


0

बस जल्दी से प्रक्रियाओं के योग की गणना करें।

पर मैक :

  • जाने chrome://system/और mem_usage में रिपोर्ट की गई सभी का चयन करें
  • SublimeText में पेस्ट करें
  • SelectAll (CMD + 'A') और SelectAllLines (CMD + SHIFT + 'L')
  • सीएमडी + राइट (ईओएल पर जाएं), बैकस्पेस, बैकस्पेस, बैकस्पेस, एएलटी + लेफ्ट, सीएमडी + बैकस्पेस
  • बैकस्पेस, टाइप '+', सीएमडी + 'ए', सीएमडी + 'सी'
  • टर्मिनल खोलें , चलाएँ python, CMD + V, दर्ज करें

ए टी वॉयला! "आसान" ... 🤓😅

PS - शॉर्टकट ननजस और 80s / 90s फाइटिंग-गेम खिलाड़ियों को इस समाधान के साथ कोई समस्या नहीं होनी चाहिए jas


0

मुझे विम और जाग के साथ एक समाधान मिला। ओपन क्रोम: // सिस्टम, मेम_सएज का विस्तार करें, कॉपी करें और रीमेक्स को निष्पादित करें:

:%s/\D*\(\d*\).MB.*/\1

यह एमबी से पहले केवल संख्या छोड़ता है। फ़ाइल सहेजें और निष्पादित करें

cat file | awk '{sum += $1} END {print sum}'

मैं vim regexp कोड को sed में नहीं बदल सका।


0

नहीं है यूएसएस जो उपलब्ध पार प्लेटफार्मों है

यूएसएस (यूनिक सेट साइज़) वह मेमोरी है जो एक प्रक्रिया के लिए अद्वितीय है और जिसे प्रक्रिया अभी समाप्त होने पर मुक्त किया जाएगा।

psutil> 4.0 पायथन लाइब्रेरी इसे एक्सेस कर सकती है

यहां मैं इसका उपयोग करूंगा

sudo python3 -c "import psutil;print(sum(p.memory_full_info().uss for p in psutil.Process(pid=292).children())/1024/1024);"

जहां pid = 292 गतिविधि मॉनिटर से सबसे बाहरी प्रक्रिया का PID है


-1

मुझे पता था कि क्रोम / क्रोमियम में एक कार्य प्रबंधक था, लेकिन यह उपयोग की जाने वाली कुल मेमोरी नहीं देता है। यह पता चला है कि टास्क मैनेजर में "स्टैट्स फॉर नर्ड्स" लिंक क्रोम की ओर जाता है: // मेमोरी-रीडायरेक्ट / जो कुल उपयोग की गई मेमोरी को सूचीबद्ध करता है। इन नंबरों का बाहरी सत्यापन करना अच्छा होगा, साथ ही कमांड लाइन पर जानकारी प्राप्त करने का एक तरीका है ताकि इसके साथ और अधिक किया जा सके, लेकिन यह सबसे अच्छा तरीका है।


2
यह उत्तर अभी मान्य नहीं है। Bugs.chromium.org/p/chromium/issues/detail?id=588790
eddygeek
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.