GNU/Linux >> Belajar Linux >  >> Linux

Browser Chromium:Melebihi Ulimit Data?

Saya telah mengatur ulimit di /etc/security/limits.conf . Ketika saya masuk ke lingkungan desktop saya sebagai pengguna testuser biasanya (menggunakan login slim yang ramping manajer), semuanya berfungsi dengan baik.

Ketika saya masuk sebagai pengguna testuser melalui Xephyr (dari sesi saya yang lain sebagai pengguna lain), semuanya berfungsi dengan baik kecuali chromium peramban. Ini adalah kesalahan yang saya dapatkan di dmesg :

Chrome_ChildIOT (2472): VmData 4310827008 exceed data ulimit 4294967296. Update limits or use boot option ignore_rlimit_data.

Dan chromium tidak dapat digunakan (mulai, tetapi menunggu tanpa batas waktu untuk memuat halaman apa pun)

Semua program lain kecuali chromium memiliki batas yang benar ditetapkan. Saya telah memverifikasi ini menggunakan:

find /proc/ -maxdepth 1 -user testuser -exec cat {}/limits ; | grep 'Max data size'

semua PIDs memiliki Max data size disetel ke tidak terbatas:

Max data size             unlimited            unlimited            bytes

kecuali chromium proses:

Max data size             4294967296           4294967296           bytes     
Max data size             17179869184          17179869184          bytes     
Max data size             17179869184          17179869184          bytes     
Max data size             17179869184          17179869184          bytes     
Max data size             17179869184          17179869184          bytes     
Max data size             17179869184          17179869184          bytes     
Max data size             17179869184          17179869184          bytes     
Max data size             17179869184          17179869184          bytes  

Saya ingin memahami:

1) mengapa chromium memiliki batasan yang berbeda dari semua program lain ?

2) dari mana asal batas "default" (dari mana chromium mengambil batas 4294967296 dari ?

3) bagaimana saya bisa mengubah batas default ini sekali dan untuk semua, secara global, untuk semua proses terlepas dari apakah mereka menggunakan pam atau tidak?

Jawaban yang Diterima:

  1. Mengapa chromium memiliki batasan yang berbeda dari semua program lain?

Chromium mungkin terlihat seperti aplikasi sederhana tetapi tidak, pertama ada multi-threading yang membuat chromium menjalankan banyak proses untuk tugas yang berbeda (ekstensi, tab, mesin web inti, dll) kemudian virtualisasi, chromium menggunakan banyak kotak pasir untuk mengisolasi aktivitas penjelajahan yang membuatnya menggunakan lebih banyak sumber daya daripada aplikasi lain, juga mesin web yang digunakan tidak ringan… ditambah dengan berbagai pustaka yang dibutuhkan yang diperlukan untuk menjalankan dan fungsi sumber daya berat lainnya… beberapa dokumentasi terkait tersedia di sini, di sini dan artikel ini memiliki beberapa info berguna.

  1. Dari mana asal batas "default" (dari mana chromium mengambil batas 4294967296?

4294967296 byte (4096 MB, atau batas 4GB) chromium memiliki desain batas 4GB ini adalah kode keras, info lebih lanjut tentang ini tersedia di sini dan di sini

  1. Bagaimana cara mengubah batas default ini sekali dan untuk semua, secara global, untuk semua proses terlepas dari apakah mereka menggunakan pam atau tidak?

Bukan tugas yang mudah tetapi Anda melakukannya dengan benar untuk sebagian besar proses biasa, sekarang untuk proses yang rumit seperti chromium, Anda perlu menyesuaikan konfigurasi untuk setiap aplikasi "khusus".

Terkait:Linux – Sinkronisasi waktu NTP membutuhkan waktu lama?

Untuk chromium ada beberapa parameter perintah yang dapat digunakan untuk menyesuaikan/mengaktifkan/menonaktifkan fitur, Anda dapat mencoba menggunakan beberapa di antaranya untuk membuat chromium sesuai dengan kebutuhan Anda, berikut beberapa switch yang menarik:

Switch tersebut dapat digunakan dengan baris perintah seperti ini /usr/bin/chromium --single-process

--single-process
--aggressive-tab-discard
--aggressive-cache-discard
--ui-compositor-memory-limit-when-visible-mb
--disk-cache-dir  # Use a specific disk cache location, rather than one derived from the UserDatadir.
--disk-cache-size  # Forces the maximum disk space to be used by the disk cache, in bytes.
--force-gpu-mem-available-mb  # Sets the total amount of memory that may be allocated for GPU resources
--gpu-program-cache-size-kb  # Sets the maximum size of the in-memory gpu program cache, in kb
--mem-pressure-system-reserved-kb  # Some platforms typically have very little 'free' memory, but plenty is available in buffers+cached. For such platforms, configure this amount as the portion of buffers+cached memory that should be treated as unavailable. If this switch is not used, a simple pressure heuristic based purely on free memory will be used.
--renderer-process-limit  # Overrides the default/calculated limit to the number of renderer processes. Very high values for this setting can lead to high memory/resource usage or instability.

Anda juga dapat menjalankan chromium dengan skrip yang memperbarui ulimit untuknya (perhatikan bahwa nilai yang lebih rendah dari 4GB dapat membuat browser crash…)

ulimit -Sv 4352000000 #4.2GB
/usr/bin/chromium

# or 0.42GB, it works but the browser may crash
#ulimit -Sv 435200000 #0.42GB
#/usr/bin/chromium

Linux
  1. Cara menginstal Chromium Web Browser di RHEL7 Linux

  2. Cara Menginstal Browser Chromium melalui PPA di Ubuntu 20.04, 20.10

  3. Instal Chromium di CentOS 8 - Panduan langkah demi langkah?

  1. Instalasi Browser Chromium Ubuntu 20.04

  2. Instalasi Browser Chromium Ubuntu 22.04

  3. Cara menginstal browser Chromium di Fedora 23

  1. Cara Memasang Browser Web Chromium di Ubuntu 18.04

  2. Cara Memasang Browser Web Chromium di Ubuntu 20.04

  3. Cara Menginstal Browser Chromium di Ubuntu 20.04