निम्नलिखित mysql
और apache
मेरे सर्वर पर क्रमशः स्मृति उपयोग हैं । आउटपुट के अनुसार pmap
, mysql
379M apache
का उपयोग कर रहा है और 277M का उपयोग कर रहा है।
[root@server ~]# pmap 10436 | grep total
total 379564K
[root@server ~]# pmap 10515 | grep total
total 277588K
के आउटपुट के साथ तुलना करने पर top
, मुझे लगता है कि मान लगभग मेल खा रहे हैं।
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
10515 apache 20 0 271m 32m 3132 S 0.0 6.6 0:00.73 /usr/sbin/httpd
10436 mysql 20 0 370m 21m 6188 S 0.0 4.3 0:06.07 /usr/libexec/mysqld --basedir=....
अब ये मूल्य निश्चित रूप से उन दो प्रक्रियाओं का वर्तमान मेमोरी उपयोग नहीं है, क्योंकि अगर यह ram
मेरे सिस्टम पर 512M से अधिक हो गया था और मैं इस तथ्य को समझता हूं कि ये इन दो प्रक्रियाओं को सौंपे गए पृष्ठों के आकार हैं और वास्तव में नहीं हैं स्मृति का आकार सक्रिय रूप से उनके द्वारा उपयोग किया जाता है। अब, जब हम उपयोग करते हैं pmap -x
, तो मुझे एक अतिरिक्त कोलॉमन दिखाई देता है Dirty
जो प्रक्रिया के लिए स्मृति के कम उपयोग को दर्शाता है। जैसा कि नीचे दिए गए उदाहरण शो में देखा गया है, Dirty
कोलमॉन 15 मीटर दिखाता है, जबकि पहले कोलमॉन में 379M है। मेरा प्रश्न है: क्या कोलॉम्न के तहत मूल्य Dirty
उस प्रक्रिया द्वारा सक्रिय रूप से उपयोग की जाने वाली स्मृति की 'वास्तविक' राशि है? यदि यह नहीं है, तो हम किसी प्रक्रिया के वास्तविक मेमोरी उपयोग का पता कैसे लगा सकते हैं? नहीं ps
और top
इसके बाद के संस्करण में एक ही कारण के लिए। क्या हमारे पास कुछ भी है/proc
यह जानकारी देगा?
[root@server ~]# pmap -x 10436 | grep total
total kB 379564 21528 15340
[root@server ~]#
[root@server ~]# free -m
total used free shared buffers cached
Mem: 489 447 41 0 52 214
-/+ buffers/cache: 180 308
Swap: 1023 0 1023
[root@server ~]#