Haruskah Linux VM di VMware / ESX memiliki partisi swap?

18

Pada pengaturan VMware ESX apa perbedaan dari opsi-opsi ini ?:

  • Linux VM dengan RAM 1GB dan partisi swap 1GB dan VM menggunakan ram 1,5 GB
  • VM Linux dengan RAM 1GB dan tanpa partisi swap dan VM menggunakan ram 1,5 GB

Maksudku, dalam kedua kasus swap sedang digunakan;

  • di swap pertama dilakukan ke partisi swap linux
  • dalam kasus kedua, VMware akan menukar 512MB ke kolam penyimpanan VMware.

Jadi apakah ada gunanya memberikan partisi swap Linux VM?

Sandra
sumber
Anda bertanya apakah host ESX perlu swap atau tidak, atau bagaimana penanganannya dengan VM? Mungkin ingin menguraikan pertanyaan untuk menentukan apa yang Anda maksud.
Bart Silverstrim
Semoga selesai sekarang.
Sandra

Jawaban:

15

Mengabaikan fakta bahwa orang berurusan dengan alasan spesifik OS Saya punya dua alasan mengapa itu ide yang buruk untuk tidak berjalan dengan partisi swap / file.

  1. Jika Anda memiliki 1,5 GB RAM yang dialokasikan untuk VM tanpa file ruang / partisi dan ingin menggunakan 1,5 GB + 1 MB itu akan melaporkan kesalahan kehabisan memori. Dengan ruang swap itu akan dapat menukar data dari memori aktif dan ke disk.
  2. OS tamu melakukan pekerjaan manajemen memori yang jauh lebih baik daripada tuan rumah. Inilah sebabnya mengapa teknologi seperti memory ballooning ada karena Host dapat membuat tebakan cerdas tentang apa yang tidak diperlukan saat ini tetapi tamu tahu pada tingkat yang jauh lebih cerdas (ini membuat memori OS tidak ditukar yang dapat membunuh kinerja Anda).
Scott Keck-Warren
sumber
10

Iya. Ini adalah cara Unix.

Unix (bahkan Linux) berharap dapat bertukar.
Hal - hal buruk terjadi ketika sistem tidak dapat menukar (baik karena itu salah konfigurasi tanpa partisi swap atau karena ruang swap penuh). Di Linux salah satu dari Hal-Hal Buruk ini adalah Pembunuh Kehabisan Memori, yang akan memasukkan pisau ke bagian belakang program yang dianggapnya menggunakan RAM terbanyak (server database adalah target favorit).

voretaq7
sumber
4

Apa yang telah Anda /proc/sys/vm/overcommit_memoryatur? Dari dokumentasi kernel:

0       -       Heuristic overcommit handling. Obvious overcommits of
                address space are refused. Used for a typical system. It
                ensures a seriously wild allocation fails while allowing
                overcommit to reduce swap usage.  root is allowed to
                allocate slightly more memory in this mode. This is the
                default.

1       -       Always overcommit. Appropriate for some scientific
                applications.

2       -       Don't overcommit. The total address space commit
                for the system is not permitted to exceed swap + a
                configurable percentage (default is 50) of physical RAM.
                Depending on the percentage you use, in most situations
                this means a process will not be killed while accessing
                pages but will receive errors on memory allocation as
                appropriate.

Jadi jika Anda menggunakan 1 tidak ada perbedaan. Jika Anda menggunakan 2 dan tidak ada file swap linux maka tidak ada proses yang dapat mengalokasikan 512M memori (virtual). Hasilnya tidak jelas untuk 0.

Sunting: Dari http://utcc.utoronto.ca/~cks/space/blog/linux/LinuxVMOvercommit, inilah cara 0 berfungsi:

Heuristic overcommit berupaya menghitung berapa banyak memori yang dapat diberikan oleh sistem jika Anda mendapatkan kembali semua memori yang ada dan tidak ada proses lain yang menggunakan lebih banyak RAM daripada saat ini; jika Anda meminta lebih dari ini, alokasi Anda ditolak. Secara khusus, nomor 'memori bebas' teoretis dihitung dengan menambahkan ruang swap bebas, RAM bebas (kurang dari 1/32 jika Anda tidak melakukan root), dan semua ruang yang digunakan oleh cache buffer dan data kernel yang disatukan yang diberi label dapat diterima kembali (kurang beberapa halaman yang dipesan).

Jadi ia menggunakan swap dalam perhitungan juga. Secara umum saya akan mengikuti rekomendasi RHEL dari:

M = Amount of RAM in GB, and S = Amount of swap in GB, then
If M < 2
    S = M *2
Else
    S = M + 2
Mark Wagner
sumber
1
cat /proc/sys/vm/overcommit_memorykembali 0. Apa yang Anda rekomendasikan dari segi overcommit_memorynilai dan swap / tanpa swap?
Sandra
3

Partisi swap bisa berpotensi lebih cepat, terutama dalam situasi di mana disk root hampir penuh dan Anda tidak dapat membuat file swap utuh tanpa fragmentasi, apalagi overhead yang mungkin dibuat oleh sistem file dan, jika berlaku, hal-hal seperti LVM.

Tetapi kinerja kedua mesin akan tetap payah jika Anda menyimpan 33% dari kebutuhan memori Anda pada disk.

Sven
sumber
Ketika Anda mengatakan "root disk". Apakah yang Anda maksud pada host ESX, tempat ESX membuat file swapnya?
Sandra
Tidak, maksud saya disk sistem VM yang berisi sistem file root. Bagaimanapun, di situlah pertukaran akan terjadi tanpa adanya partisi swap khusus.
Sven
Catatan, jawaban ini memperdebatkan antara partisi swap vs file swap. Saya pikir pertanyaannya adalah apakah Anda perlu bertukar sama sekali.
user606723
@ user606723: Jika Anda tidak menggunakan swap sama sekali, Anda akan berakhir dengan kesalahan kehabisan memori jika Anda mencoba mengalokasikan lebih banyak memori daripada yang dimiliki VM dan penggunaan 1,5GB dengan situasi fisik 1GB tidak dapat terjadi.
Sven
@VenW, Ya, tapi itu tidak diberikan bahwa sesuatu seperti itu kemungkinan akan terjadi. Itu untuk admin yang memutuskan.
user606723
0

Silakan lihat tautan berikut- https://help.ubuntu.com/community/SwapFaq

Pada dasarnya, kecuali Anda perlu hibernate atau menggunakan lebih banyak memori daripada yang Anda alokasikan ke VM, tidak ada keuntungan signifikan untuk partisi swap.

Saya belum pernah menggunakan partisi swap / file di salah satu mesin linux saya selama bertahun-tahun.

pengguna606723
sumber
1
Pertanyaannya bukan tentang swap / tidak ada swap. Ini tentang bagaimana VMware menangani swap.
Sandra
0

Keuntungan yang jelas untuk swap adalah ketika mesin Anda crash, Anda masih bisa membuat crash dump. Perbaiki saya jika saya salah, tetapi afaik ini tidak mungkin tanpa swap. Ini bukan VMWare yang spesifik, tetapi berlaku di mana saja. Saya merasa mungkin penting untuk ditunjukkan.

juwi
sumber