चूंकि Google क्रोम / क्रोमियम कई प्रक्रियाओं को जन्म देता है, इसलिए यह देखना कठिन है कि ये प्रक्रिया कुल मेमोरी का कितना उपयोग करती है।
क्या यह देखने का एक आसान तरीका है कि कुल मेमोरी कितने कनेक्टेड प्रक्रियाओं की एक श्रृंखला का उपयोग कर रही है?
चूंकि Google क्रोम / क्रोमियम कई प्रक्रियाओं को जन्म देता है, इसलिए यह देखना कठिन है कि ये प्रक्रिया कुल मेमोरी का कितना उपयोग करती है।
क्या यह देखने का एक आसान तरीका है कि कुल मेमोरी कितने कनेक्टेड प्रक्रियाओं की एक श्रृंखला का उपयोग कर रही है?
जवाबों:
यह देखते हुए कि मार्च 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-P firefoxsudo smem।338.0M। यह बहुत कम है। जब मैं सिस्टम मॉनिटर चलाता हूं, तो मैं देख सकता हूं कि 11 क्रोम प्रक्रियाएं हैं और प्रत्येक 70 एमबी और 400 एमबी रैम के बीच ले जा रहा है। सुनिश्चित नहीं है कि सिस्टम मॉनिटर गलत रिपोर्ट कर रहा है या नहीं।
chromeसिर्फ chormइसलिए उपयोग करूंगा क्योंकि अगर आप क्रोम और क्रोमियम दोनों चला रहे हैं, तो आप दोनों के लिए कुल देख रहे हैं।
smemकुछ जैसे [c]hrome, का उपयोग करके अपने स्वयं के आउटपुट से बाहर कर सकते हैं smem -tkP '[c]hrome'। यह cचौकोर कोष्ठकों के अंदर मेल करके काम करता है न कि स्वयं कोष्ठक में।
मुझे यकीन है कि यह सबसे अच्छा समाधान नहीं है, फिर भी यह मेरे लिए काम करता है:
#!/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"काम करेंगे) पर हैं, तो अपने सिस्टम के लिए उपयुक्त किसी चीज़ में परिवर्तन करें ।
awkआज्ञा क्यों ? यानी सिर्फ क्यों नहीं ... | awk '{sum += $6} END {print sum}'?
ps aux | grep "/opt/google/chrome/chrome" | awk '{vsz += $5; rss += $6} END { print "vsz="vsz, "rss="rss }'
smemशीर्ष उत्तर के अनुसार उपयोग करें । हालांकि एफडब्ल्यूआईडब्ल्यू, मैं इसे एक स्क्रिप्ट या फ़ंक्शन के रूप में लागू करूंगा, क्योंकि यह एक उपनाम के लिए बहुत जटिल है।
इसे चलाना:
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' को बदल नहीं दिया जाता। जब ऐसा होता है, तो परिवर्तित अनुभाग कॉपी किया जाएगा और रैम लेना शुरू कर देगा।
क्या आप यह माप सकते हैं कि कितनी मेमोरी कॉपी-ऑन-राइट ओवर-कमिटेड है, मुझे नहीं पता। लेकिन कम से कम यह आपकी अति-गिनती की व्याख्या करता है।
बस जल्दी से प्रक्रियाओं के योग की गणना करें।
पर मैक :
chrome://system/और mem_usage में रिपोर्ट की गई सभी का चयन करेंpython, CMD + V, दर्ज करेंए टी वॉयला! "आसान" ... 🤓😅
PS - शॉर्टकट ननजस और 80s / 90s फाइटिंग-गेम खिलाड़ियों को इस समाधान के साथ कोई समस्या नहीं होनी चाहिए jas
मुझे विम और जाग के साथ एक समाधान मिला। ओपन क्रोम: // सिस्टम, मेम_सएज का विस्तार करें, कॉपी करें और रीमेक्स को निष्पादित करें:
:%s/\D*\(\d*\).MB.*/\1
यह एमबी से पहले केवल संख्या छोड़ता है। फ़ाइल सहेजें और निष्पादित करें
cat file | awk '{sum += $1} END {print sum}'
मैं vim regexp कोड को sed में नहीं बदल सका।
नहीं है यूएसएस जो उपलब्ध पार प्लेटफार्मों है
यूएसएस (यूनिक सेट साइज़) वह मेमोरी है जो एक प्रक्रिया के लिए अद्वितीय है और जिसे प्रक्रिया अभी समाप्त होने पर मुक्त किया जाएगा।
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 है
मुझे पता था कि क्रोम / क्रोमियम में एक कार्य प्रबंधक था, लेकिन यह उपयोग की जाने वाली कुल मेमोरी नहीं देता है। यह पता चला है कि टास्क मैनेजर में "स्टैट्स फॉर नर्ड्स" लिंक क्रोम की ओर जाता है: // मेमोरी-रीडायरेक्ट / जो कुल उपयोग की गई मेमोरी को सूचीबद्ध करता है। इन नंबरों का बाहरी सत्यापन करना अच्छा होगा, साथ ही कमांड लाइन पर जानकारी प्राप्त करने का एक तरीका है ताकि इसके साथ और अधिक किया जा सके, लेकिन यह सबसे अच्छा तरीका है।