GNU/Linux >> Belajar Linux >  >> Linux

Tentang Mem Dan Vmem?

Saya bekerja dengan mesin cluster yang berjalan di bawah linux.

Saya memiliki skrip shell yang menggunakan mpirun untuk mengirimkan pekerjaan saya ke mesin cluster. Dalam skrip yang sama, saya dapat memilih jumlah node yang akan ditugaskan ke pekerjaan itu. Sejauh ini, sangat baik.

Masalah saya muncul setelah:ketika saya mengirimkan beberapa pekerjaan, semuanya bekerja dengan baik, namun, ketika saya mengisi kapasitas node, beberapa pekerjaan yang dikirimkan tidak akan selesai. Akibatnya saya curiga bahwa memori yang tersedia di cluster tidak cukup untuk menangani semua pekerjaan saya pada waktu yang sama.

Inilah sebabnya mengapa saya ingin memeriksa penggunaan memori setiap pekerjaan dari waktu ke waktu, saya kemudian menggunakan qstat -f perintah, tetapi menampilkan banyak hal, dan sebagian besar tidak dapat saya pahami.

Jadi inilah pertanyaan saya: Dalam contoh keluaran qstat -f perintah di bawah ini, kita dapat melihat dua jenis memori:mem dan vmem . Saya ingin tahu apa perbedaan antara keduanya dan berapa jumlah sebenarnya dari memori yang digunakan?

resources_used.cput = 00:21:04
resources_used.mem = 2099860kb
resources_used.vmem = 40505676kb
resources_used.walltime = 00:21:08

Selain itu, saya akan menghargai referensi apa pun di mana output dari perintah ini dirinci. Saya mencoba man qstat tetapi tidak masuk ke detail setiap baris yang dikembalikan.

Jawaban yang Diterima:

Hanya untuk menghapus ini dari daftar pertanyaan terbuka dan untuk memberikan jawaban yang disederhanakan (komentar goldilocks di atas dan dokumentasi qstat mengasumsikan keakraban yang lebih dalam dengan sistem):

Jawabannya tergantung pada apa sebenarnya yang Anda maksud dengan “jumlah sebenarnya dari memori yang digunakan” (dan kemudian dalam balasan Anda ke komentar:“ruang RAM yang digunakan”).

"mem" adalah berapa banyak RAM mesin yang digunakan oleh pekerjaan Anda, lebih tepatnya penggunaan puncak yang diamati. Ini belum tentu merupakan penggunaan puncak yang sebenarnya karena sistem pemantauan pekerjaan di cluster Anda mungkin hanya sering memeriksa penggunaan. Pekerjaan Anda mungkin mencoba menggunakan lebih banyak memori daripada yang dilaporkan di sini, tetapi sistem tidak memberi pekerjaan lebih banyak memori, misalnya karena tidak ada lebih banyak memori atau tugas lain yang berjalan pada mesin yang sama bersaing untuk mendapatkan memori. Selain itu, cache sistem file dapat menjadi pesaing RAM jika ada aktivitas file (I/O) yang berat.

Terkait:Linux – Aplikasi mana yang digunakan untuk kalender?

“vmem” adalah besaran yang terkait dengan cara prosesor modern mengelola memori. Sekali lagi itu adalah nilai puncak. Jumlah ini dapat mencakup berbagai hal yang dapat diakses oleh proses seperti file yang dipetakan memori dan ruang swap. Ini termasuk ruang yang dialokasikan proses tetapi tidak pernah digunakan dan karena itu bisa sangat besar. Jika jumlahnya rendah, ini memungkinkan Anda untuk menyimpulkan bahwa memori bukanlah masalah tetapi jika tinggi, Anda tidak tahu dan perlu menyelidiki lebih lanjut. Beberapa aplikasi mengalokasikan banyak memori virtual meskipun hanya membutuhkan sebagian kecil.


Linux
  1. Tutorial Pemrograman C 4 - Variabel dan Memori

  2. Cara Menghapus Buffer Memori dan Cache di Linux

  3. Ada hub baru untuk pekerjaan open source, dan ini bukan hanya tentang pengembang dan admin

  1. Diskusi tentang VPS Windows, Linux dan cPanel – Bagian II

  2. Pemantauan dan manajemen memori

  3. Pertanyaan tentang putenv() dan setenv()

  1. Apa itu /dev/mem?

  2. Batasi memori dan cpu dengan lxc-execute

  3. Apa maksud kolom buff/cache dan avail mem di atas?