Bagaimana cara meningkatkan "ulimit -u" (proses pengguna maks)?

6

Saya dapat mengubah semua ulimits biasa melalui (misalnya) ulimit -n 8192dan launchctl limit maxfiles 8192 8192. Entah bagaimana, ini sepertinya tidak berhasil -u, jumlah maksimum proses pengguna:

~$ sudo launchctl limit maxproc 8192 8192
~$ sudo launchctl limit maxproc
    maxproc     2048           2048
-- in a new terminal:
~$ ulimit -u
1064

Saya mendapatkan "gagal fork" sesekali, dan itu cukup menjengkelkan harus membunuh banyak proses ketika "membunuh" tidak dapat memulai :) (yaitu saya biasanya hanya perlu me-reboot mesin).

Apa cara yang benar untuk mengubah jumlah maksimum proses pengguna?

Stefano Palazzo
sumber

Jawaban:

5

http://blog.ghostinthemachines.com/2010/01/19/mac-os-x-fork-resource-temporently-unavailable/ berbicara tentang masalah ini dengan sangat rinci.

Ketika Anda melakukannya sudo launchctl limit maxproc, Anda melihat atau mengubah batas launchd seluruh sistem.

Ketika Anda melakukannya launchctl limit maxproc, Anda melihat atau mengubah batas launchd untuk pengguna Anda.

Satu hal yang perlu diingat adalah ini:

Pengguna root dapat meningkatkan batas keras launchd seluruh sistem, tanpa reboot. Namun, Anda tidak dapat mengubah batas keras launchd pengguna tanpa reboot (bahkan jika mencoba melakukannya sebagai pengguna root).

Pada dasarnya, batas keras (kolom kanan) yang ditampilkan saat Anda awalnya launchctl limit maxprocakan menjadi batas yang dapat Anda atur ulimit -utanpa me-reboot. Logout dan kembali tidak akan berfungsi. Bahkan jika Anda mengubah apa yang ditampilkan oleh launchctl limit maxproc, batas keras awal tetap ada. Lihat jawaban ini untuk info lebih lanjut tentang hubungan antara ulimitdan launchctl limit. Untuk menaikkan batas itu, Anda harus

  • sunting / buat /etc/sysctl.confuntuk meningkatkan proses maksimum yang didukung oleh kernel

    kern.maxproc=2500
    kern.maxprocperuid=2500
  • sunting / buat /etc/launchd.confuntuk menaikkan batas keras dari peluncuran seluruh sistem saat boot

    limit maxproc 2500 2500
  • reboot

Perhatikan juga bahwa 2500 tampaknya adalah batas maksimum yang kern.maxprocdapat diatur. Saya akan mengajukan pertanyaan tentang ini segera setelah saya reboot dan memiliki cukup proses bebas untuk membuka tab Chrome lainnya.

intuisi
sumber
2
Catatan: launchd.confMetode ini tidak lagi berfungsi di Mavericks dan distribusi baru lainnya.
kenorb