Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 7160|Jawab: 5

Docker memodifikasi dan membatasi CPU kontainer, memori, dan sumber daya lainnya

[Salin tautan]
Diposting pada 06/08/2022 13.55.37 | | | |
Persyaratan: Saat membuat kontainer buruh pelabuhan, Anda dapat membatasi penggunaan memori maksimum kontainer dengan menambahkan parameter -m.

Meninjau batas memori kontainer

Mesin host memasang stik memori 8G dan membuat 3 kontainer, di mana memori maksimum kontainer itsvse-redis dibatasi hingga 512M, dan dua kontainer yang tersisa tidak dibatasi, seperti yang ditunjukkan pada gambar di bawah ini:



Penjelasan terperinci tentang format informasi keluaran

[CONTAINER]: Menampilkan ID kontainer dalam bentuk singkat.
CPU %: Penggunaan CPU.
[MEM USAGE/LIMIT]: Memori yang saat ini digunakan dan memori maksimum yang dapat digunakan.
[MEM %]: Menampilkan penggunaan memori sebagai persentase.
[NET I/O]: Data I/O jaringan.
[BLOCK I/O]: Data I/O disk.
[PIDS]:P nomor ID.

Perintah pembaruan Docker

Perintah pembaruan buruh pelabuhan memperbarui konfigurasi kontainer secara dinamis. Anda dapat menggunakan perintah ini untuk mencegah kontainer mengkonsumsi terlalu banyak sumber daya dari host Docker mereka. Dengan satu perintah, Anda dapat menetapkan batas pada satu kontainer atau beberapa kontainer. Untuk menentukan beberapa kontainer, berikan daftar nama kontainer atau ID yang dipisahkan oleh spasi.

OPSI Deskripsi

Nama
deskripsi
--blkio-berat
Memblokir IO (berat relatif), antara 10 dan 1000, 0 dinonaktifkan (default ditekan)
--cpu-periode
Batasi durasi CPU CFS (Penjadwal Sepenuhnya Adil)
--CPU-kuota
Batasi kuota CPU CFS (Completely Fair Scheduler)
--cpu-rt-periode
API 1.25+, yang membatasi waktu nyata CPU hingga mikrodetik
--cpu-rt-runtime
API 1.25+, yang membatasi runtime real-time CPU hingga mikrodetik
--cpu-saham, -c
Pangsa CPU (berat relatif)
--Cpu
API 1.29+, jumlah CPU
--cpuset-cpusu
CPU yang diizinkan (0-3,0,1)
--cpuset-mem
MEM yang diizinkan (0-3,0,1)
--kernel-memori
Batas memori kernel
--pertukaran memori
Batas swap sama dengan memori ditambah swapping, "-1" untuk memungkinkan swapping tanpa batas
--memori-reservasi
Batas lunak memori
--memori, -m
Batas memori
--pids-limit
API 1.40+, sesuaikan batas pid kontainer (-1 berarti tidak terbatas)
--Restart
Mulai ulang kebijakan untuk diterapkan saat kontainer keluar

Dokumentasi:Login hyperlink terlihat.

Misalkan Anda membatasi kontainer php5-fpmPenggunaan memori maksimum 1024M (1G), perintahnya adalah sebagai berikut:



(Akhir)




Mantan:Komunikasi lintas jendela PostMessage HTML5
Depan:[Putar] Kalimat Task.Result akan dikunci, bagaimana lagi cara menulis kode ini?
 Tuan tanah| Diposting pada 06/08/2022 13.58.43 |
Jika Anda tidak menyetel parameter --memory-swap, Anda mungkin mendapatkan error:

Respons kesalahan dari daemon: Tidak dapat memperbarui kontainer ae7884f515f96cadab65668d6a44e13bb899c1e7fd411abcc88577a79d4302a3: Batas memori harus lebih kecil dari batas pertukaran memori yang sudah ditetapkan, Perbarui Memoryswap secara bersamaan
 Tuan tanah| Diposting pada 06/08/2022 14.31.57 |
Linux menggunakan lookbusy untuk mensimulasikan penggunaan CPU
https://www.itsvse.com/thread-10260-1-1.html
Diposting pada 06/08/2022 15.52.44 |
Belajar belajar
 Tuan tanah| Diposting pada 01/07/2023 21.46.50 |
Opsi runtime untuk memori Docker, CPU, dan GPU:Login hyperlink terlihat.

--Detail pertukaran memori

--memory-swap adalah bendera pengubah yang hanya masuk akal jika --memory juga diatur. Saat kontainer menggunakan semua RAM yang tersedia, menggunakan swap memungkinkan kontainer untuk menulis kelebihan persyaratan memori ke disk. Untuk aplikasi yang sering menukar memori ke disk, performa menurun.

Pengaturannya dapat memiliki efek yang kompleks:

Jika --memory-swap diatur ke bilangan bulat positif, maka kedua --memory harus diatur ke --memory-swap. --memory-swap mewakili jumlah total memori dan zona swap yang dapat digunakan, dan --memory mengontrol jumlah memori yang digunakan di zona non-swap. jadiJika --memory="300m" dan --memory-swap="1g", wadah dapat menukar ruang dengan memori 300m dan 700m (1g - 300m).

Jika --memory-swap diatur ke 0, pengaturan diabaikan dan nilainya dianggap tidak disetel.

Jika --memory-swap diatur ke nilai yang sama dengan --memory, dan --memory diatur ke bilangan bulat positif, kontainer tidak memiliki akses ke swap。 Lihat Mencegah kontainer menggunakan swap.

Jika --memory-swap tidak diatur dan --memory diatur, kontainer dapat menggunakan swap --memory sebanyak yang ditetapkan (jika kontainer host dikonfigurasi dengan memori swap). Misalnya, jika --memory="300m" dan --memory-swap tidak diatur, kontainer dapat menggunakan total 600m memori dan ruang swap.

Jika --memory-swap secara eksplisit diatur ke -1, kontainer diizinkan untuk menggunakan pertukaran dalam jumlah tak terbatas, hingga jumlah yang tersedia di sistem host.

Di dalam kontainer, alat seperti laporan gratis tentang bursa yang tersedia untuk host alih-alih melaporkan pertukaran yang tersedia di dalam kontainer. Jangan mengandalkan output alat gratis atau serupa untuk menentukan apakah pertukaran ada.
 Tuan tanah| Diposting pada 16/02/2024 04.07.22 |

Jika --memory-swap tidak diatur,-- memori diatur ke nilai,Default --memory-swap dapat menggunakan memori yang sama dengan --memoryMisalnya, jika Anda ,-- memory-swap=1G, Anda dapat menggunakan ruang swap 1G, dan terakhir, wadah dapat menggunakan memori 2G (--memory 1G space + --memory-swap 1G space).

Ini berarti bahwa ketika --memory diatur,-- memory-swap dapat dipahami sebagai batas memori total, dan ruang swap yang tersedia sama dengan nilai memori dikurangi memori.

Lihat konfigurasi container --memory-swap dengan perintah berikut:



"Memori": 536870912, // 512M=536870912/1024/1024/1024
"Reservasi Memori": 0,
"Pertukaran Memori": 1073741824, // 1G=1073741824/1024/1024/1024
"MemorySwappiness": null,

Konfigurasi di atas adalah bahwa kontainer membatasi memori --memory=512M, dan --memory-swap tidak diatur.
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com