Saya baru-baru ini ditingkatkan dari Mavericks ke Yosemite .... sakit kepala terjadi
Saya cukup yakin masalah saya terletak pada jumlah file yang dapat saya buka - tetapi saya tidak yakin bagaimana menyelesaikannya . Saya juga cukup yakin saya sudah membaca setiap artikel / tip tentang membuat /etc/sysctl.conf
file dan /etc/launchd.conf
file
Demi kejelasan ini adalah apa yang mereka berdua terlihat seperti nb (Saya bahkan tidak yakin apakah ini adalah perintah yang tepat untuk dimasukkan ke dalamnya lagi - Saya sudah mencoba hampir semua dan semua kombinasi. Yaitu: nilai yang lebih tinggi, nilai yang lebih rendah , menghapus perintah, menambahkan perintah)
/etc/launchd.conf
limit maxfiles 16384 32768
limit maxproc 1000 2000
/etc/sysctl.conf
# Turn up maxproc
kern.maxproc=2048
# Turn up the maxproc per user
kern.maxprocperuid=512
Saya juga mencoba meningkatkan nilai ulimit saya - baik secara global maupun lokal untuk sesi saya saat ini ... tanpa bueno
ulimit -a
-t: cpu time (seconds) unlimited
-f: file size (blocks) unlimited
-d: data seg size (kbytes) unlimited
-s: stack size (kbytes) 8192
-c: core file size (blocks) 0
-v: address space (kbytes) unlimited
-l: locked-in-memory size (kbytes) unlimited
-u: processes 709
-n: file descriptors 4096
Ok - disinilah sakit kepala saya awalnya mulai ... DB saya (percona-server 5.6.21-69.0 diinstal melalui homebrew) mulai tersedak dan sekarat, dan di mysql-error.log itu diisi dengan kesalahan too many files open
.
2014-10-21 15:19:50 5190 [ERROR] /usr/local/Cellar/percona-server/5.6.21-69.0/bin/mysqld: Can't open file: './ie/tokenorder_products.frm' (errno: 24 - Too many open files)
2014-10-21 15:19:50 5190 [ERROR] /usr/local/Cellar/percona-server/5.6.21-69.0/bin/mysqld: Can't open file: './ie/tokenorders.frm' (errno: 24 - Too many open files)
2014-10-21 15:19:50 5190 [ERROR] /usr/local/Cellar/percona-server/5.6.21-69.0/bin/mysqld: Can't open file: './ie/tsdevices.frm' (errno: 24 - Too many open files)
2014-10-21 15:19:50 5190 [ERROR] /usr/local/Cellar/percona-server/5.6.21-69.0/bin/mysqld: Can't open file: './ie/tsracks.frm' (errno: 24 - Too many open files)
2014-10-21 15:19:50 5190 [ERROR] /usr/local/Cellar/percona-server/5.6.21-69.0/bin/mysqld: Can't open file: './ie/v_classunity_classlist.frm' (errno: 24 - Too many open files)
2014-10-21 15:20:48 5190 [ERROR] Error in accept: Too many open files
Di sinilah saya awalnya mulai mencoba dan memecahkan masalah itu dengan "meningkatkan" ulimit, maxfiles, maxproc, dll ... saya ...
Akhirnya - frustrasi, saya pindah dan akan kembali ke masalah itu nanti. Jadi saya mencoba sudo gem install nokogiri
berulang kali akan gagal dan meludahkan kesalahan yang sama ini (banyak pengulangan tentang pembangun. Rb gagal membangun ekstensi asli permata - diikuti oleh sekelompok stacktraces berulang Log Log Gist
Kesalahan Instalasi nokogiri
Saya sudah mencoba / meng-Google-Google sekelompok pendekatan yang berbeda untuk menyelesaikan masalah ini (yaitu: bendera tambahan, dll.). Apa yang luar biasa - dan ketika saya mulai berpikir masalah ini terkait dengan # file / proses terbuka adalah ketika saya memeriksa top
ketika permata sedang menginstal .... Saya cukup terkejut melihat apa yang saya temukan
atas selama gem install nokogiri
Sepertinya proses saya terus forking, yang kemudian masuk akal untuk baris SATU ini di gambar saya sebelumnya (lihat "nokogiri instal kesalahan gambar")
sh: fork: Resource temporarily unavailable
Jadi saya agak kehabisan ide, tapi saya tidak begitu yakin bagaimana cara men-debug # file lagi?
MEMPERBARUI
Yah, saya berhasil menginstal nokogiri. Sayangnya, saya tidak yakin apa yang memperbaikinya. Saya sudah mencoba banyak hal. Tapi saya pikir itu harus berurusan dengan menginstal ulang ruby. Namun, saya masih mendapatkan masalah yang sama dengan DB saya mengeluh tentang terlalu banyak file yang dibuka ketika saya menggunakan segala jenis database yang tidak kecil.
sumber
Jawaban:
Memodifikasi
/etc/launchd.conf
per banyak permintaan google dan saran SO sepertinya tidak bekerja untuk saya di Yosemite (10.10). Apa yang akhirnya berhasil, setelah banyak perubahan / reboot / kombinasi pengujian, memodifikasi (atau membuat jika tidak ada)/etc/sysctl.conf
file.Inilah yang harus saya masukkan untuk membuatnya bekerja
Saya tidak yakin apakah
kern.maxfiles
perlu ada di sana, tetapi ketika saya memilikinya di sana dengan sendirinya saya masih memiliki masalah yang sama, ketika saya menambahkankern.maxfilesperproc
semuanya mulai bekerja.sumber
sysctl -a | grep kern.maxfiles
.Untuk menyesuaikan batas file terbuka secara sistem di Mac OS X Yosemite, Anda harus membuat dua file konfigurasi. Yang pertama adalah file daftar properti (alias plist)
/Library/LaunchDaemons/limit.maxfiles.plist
yang berisi konfigurasi XML berikut:Ini akan mengatur batas file terbuka menjadi 65536. File konfigurasi plist kedua harus disimpan
/Library/LaunchDaemons/limit.maxproc.plist
dengan konten berikut:Kedua file plist harus dimiliki oleh
root:wheel
dan memiliki izin-rw-r--r--
. Izin ini harus ada di tempat secara default, tetapi Anda dapat memastikan bahwa mereka ada dengan menjalankansudo chmod 644 <filename>
. Meskipun langkah-langkah yang dijelaskan di atas akan menyebabkan batas file terbuka di seluruh sistem ditetapkan dengan benar saat dimulai ulang, Anda dapat menerapkannya secara manual dengan menjalankanlaunchctl limit
.Selain menetapkan batas-batas ini pada tingkat sistem, kami sarankan pengaturan di tingkat sesi juga dengan menambahkan baris berikut ke Anda
bashrc
,bashprofile
atau file yang analog:Seperti file plist, bashrc Anda atau file serupa harus memiliki
-rw-r--r--
izin. Pada titik ini, Anda dapat me-restart komputer Anda dan memasukkan ulimit -n ke terminal Anda. Jika sistem Anda dikonfigurasikan dengan benar, Anda akan melihat bahwa maxfiles telah diatur ke 65536.Bersumber dari: http://docs.basho.com/riak/latest/ops/tuning/open-files-limit/
sumber
Default pada Yosemite tampaknya 12K dan 10K:
Hanya pengaturan
kern.maxfiles
di/etc/sysctl.conf
tampaknya telah memecahkan masalah saya./etc/sysctl.conf
mengajukan:sumber
launchctl limit maxfiles
memberi saya ini:maxfiles 256 unlimited