
Ποιος είναι ο σωστός τρόπος για να πάρετε το μέγεθος διαδικασία για `Solaris, HP-UX`και `AIX`; Θα πρέπει να χρησιμοποιήσετε `top`ή `ps -o vsz`ή κάτι άλλο;

 
Μέγεθος διαδικασία για UNIX
===========================



Οι ακριβείς ορισμοί των `vsize`, `rss`, `rprvt`, `rshrd`, και άλλες σκοτεινές εμφάνιση συντομογραφίες ποικίλλουν από OS σε OS. Οι σελίδες του εγχειριδίου για τους `top`και `ps`τις εντολές θα έχουν κάποιο είδος της περιγραφής, αλλά όλες αυτές οι περιγραφές απλοποιηθεί σε μεγάλο βαθμό (ή βασίζονται σε μεγάλες εξαφανιστεί εφαρμογές πυρήνα).   

«Μέγεθος Διαδικασία» ως έννοια είναι τρομερά δύσκολο να γίνουν αντιληπτά στη γενική περίπτωση. Απαντήσεις σε συγκεκριμένες περιπτώσεις εξαρτάται σε μεγάλο βαθμό από την πραγματική εφαρμογή διαχείρισης μνήμης στο λειτουργικό σύστημα, και είναι σπάνια τόσο ικανοποιητικό όσο το καθαρό «μέγεθος διαδικασία» αντίληψη που υπάρχει στο μυαλό των περισσότερων χρηστών (και οι περισσότεροι developers).


Για παράδειγμα, κανένας από αυτούς τους αριθμούς (ούτε, πιθανότατα, οποιοσδήποτε συνδυασμός τους) μπορεί να χρησιμοποιηθεί για να σας πω ακριβώς πόσες τέτοιες διαδικασίες μπορεί να τρέξει ταυτόχρονα σε μια δεδομένη ποσότητα της ελεύθερης μνήμης. Αλλά πραγματικά, το καλύτερο στοίχημά σας είναι να έρθει κανείς από το σκοπό αυτό: γιατί θέλετε αυτόν τον αριθμό, και αυτό θα μπορείτε να το χρησιμοποιήσετε για; Δεδομένου ότι οι πληροφορίες, νομίζω ότι θα πάρετε περισσότερες χρήσιμες απαντήσεις.

 

Ναι, έχετε δίκιο να κλειδώσει στο VSZ.


`ps u`θα σας δώσει την VSZ και RSS, που είναι η εικονική μέγεθος μνήμης και κάτοικος του μεγέθους σετ. Το RSS είναι πόση φυσική μνήμη έχει διατεθεί για τη διαδικασία, και η VSZ είναι η εικονική μέγεθος μνήμης της διαδικασίας. Εάν έχετε πολλά αντίγραφα ενός προγράμματος που εκτελείται, ένα μεγάλο μέρος της μνήμης του VSZ θα μοιραστούν μεταξύ αυτών των διαδικασιών.

 

Στο Solaris, μπορείτε να πάρετε αναλυτικές πληροφορίες σχετικά με τη χρήση της μνήμης μιας διεργασίας με την `pmap`εντολή. Ειδικότερα, `pmap -x <pid>`σας δείχνει πόση μνήμη μιας διαδικασίας που είναι κοινή και πόσο χρησιμοποιείται ειδικά από αυτή τη διαδικασία. Αυτό είναι χρήσιμο για την εκπόνηση της «περιθωριακή» τη χρήση της μνήμης της διαδικασίας - με αυτήν την τεχνική, μπορείτε να αποφευχθεί η διπλή καταμέτρηση κοινόχρηστες βιβλιοθήκες.

 

I συνόψισε το σύνολο κάτοικος μέγεθος για όλες τις διαδικασίες, όπως αυτή (ως root):



```
ps ax -o rss | awk '{rss += $1;} END { print rss}'

```
 