Saya memiliki beberapa pekerjaan cron untuk pemeliharaan dasar yang tidak terlalu banyak sumber daya.
Saya juga memiliki penjadwalan tugas khusus (yang hanya memanggil file .php dan menyampaikan informasi melalui GET, yaitu: cronjob.php? Param1 = param ...). Ini dapat bertambah dengan cukup cepat.
Ini hanya memanggil perintah sistem dan menjalankan program eksternal (Nmap adalah salah satunya). Mereka biasanya juga tidak butuh waktu lama.
Ngomong-ngomong, ada yang bisa memberitahuku, kira-kira poin apa yang terlalu banyak? Saya tahu ini sulit dikatakan karena itu tergantung pada pekerjaan apa yang sedang dijalankan dan seberapa sering, tetapi pada titik mana program crontab mulai "berjuang"? Adakah yang tahu?
Terima kasih.
Jawaban:
Saya tidak akan khawatir tentang beban pada "program crontab" (cron) itu sendiri; itu adalah beban sistem keseluruhan yang mungkin perlu Anda perhatikan. Lihatlah metrik (pemanfaatan cpu, rasio io, waktu respons kueri web) selama pekerjaan Anda berjalan - apakah ada lonjakan nyata? apakah itu cukup buruk sehingga mengganggu penggunaan sistem yang sebenarnya?
Jika program "tidak butuh waktu lama", itu pertanda baik bahwa itu bukan masalah.
Jika Anda masih khawatir, Anda dapat melakukan hal lain untuk membatasi beban: menjalankan pekerjaan dengan
nice
mengurangi prioritas mereka, menjalankannya secara berurutan alih-alih secara bersamaan, dan sebagainya.sumber
Hanya mencari melalui sistem produksi kami, yang terbesar memiliki 862 pekerjaan cron (di semua pengguna, yang terbesar, root, adalah 117), dan itu tidak terlalu berkeringat dengan banyak.
Jika Anda memulai 60 pekerjaan setiap menit, 24x7, dan mereka semua membutuhkan waktu dua detik untuk menyelesaikannya, maka Anda mungkin akan berakhir di dunia kesakitan. Tapi, selama beban kerja seimbang (dengan waktu tenang dan semacamnya), itu harus pulih. Mengawasi beban sistem selama masa puncak (CPU%, disk I / O, ...) dan lebih khawatir tentang itu daripada jumlah pekerjaan aktual.
Pertanyaan ini mirip dengan "Berapa banyak proses yang dapat saya jalankan sebelum mendapat masalah?". Taruhan terbaik adalah dengan mencobanya, karena tergantung pada sistem Anda. Cron sendiri memiliki beberapa keterbatasan yang saya temukan tetapi, jika Anda mencoba untuk menjadwalkan puluhan ribu pekerjaan, Anda membuat lebih banyak tekanan daripada yang pernah saya miliki.
Ukur, jangan menebak!
sumber
Cron sendiri pada dasarnya tidak akan pernah mulai berjuang; sistem akan sepenuhnya macet dengan beban kerja jauh sebelum itu terjadi.
sumber
Saya setuju dengan semua jawaban yang ada di sini. Untuk memahaminya dengan perspektif yang sedikit berbeda, anggap cronjobs sebagai pengguna di platform Anda.
Katakanlah pengguna menggunakan 1% CPU Anda (operasi CRUD / jaringan, dll.). Jika ada 100 pengguna seperti itu (cronjobs) secara bersamaan, maka CPU Anda akan mencapai batas ambang batas dan server mungkin tidak dapat memproses pada akhirnya yang mengakibatkan crash.
Jadi kembali ke pertanyaan: "Berapa banyak pekerjaan cron yang terlalu banyak?" - Selama analisis Anda menunjukkan bahwa mungkin tidak ada lonjakan tiba-tiba dalam sumber daya , bahkan 100 cronjobs bagus untuk dilakukan.
sumber