Có bao nhiêu công việc định kỳ là quá nhiều?


9

Tôi có một vài công việc định kỳ để bảo trì cơ bản không tốn nhiều tài nguyên.

Tôi cũng có lập lịch tác vụ tùy chỉnh (chỉ gọi một tệp .php và truyền thông tin qua GET, tức là: cronjob.php? Param1 = param ...). Những thứ này có thể tăng lên khá nhanh.

Chúng chỉ gọi các lệnh hệ thống và chạy các chương trình bên ngoài (Nmap là một trong số chúng). Họ thường không mất nhiều thời gian.

Dù sao, bất cứ ai có thể cho tôi biết, đại khái những gì là quá nhiều? Tôi biết thật khó để nói vì nó phụ thuộc vào công việc nào đang được điều hành và mức độ thường xuyên, nhưng tại thời điểm nào thì chương trình crontab bắt đầu "vật lộn"? Bất cứ ai có ý tưởng?

Cảm ơn.

cron 

Bạn có thể thêm bao nhiêu mục trước khi tệp phát triển lớn đến mức bạn hết dung lượng đĩa?
John Gardeniers

Câu trả lời:


6

Tôi sẽ không lo lắng về tải trên "chương trình crontab" (cron); đó là tải hệ thống tổng thể của bạn mà bạn có thể muốn chú ý đến. Nhìn vào số liệu (mức sử dụng cpu, tỷ lệ io, thời gian phản hồi truy vấn web) trong thời gian (các) công việc của bạn đang chạy - có sự tăng đột biến đáng chú ý không? nó có đủ tệ đến mức làm gián đoạn việc sử dụng thực tế của hệ thống không?

Nếu các chương trình "không mất nhiều thời gian", đó là một dấu hiệu tốt cho thấy đó không phải là vấn đề.

Nếu bạn vẫn lo ngại, bạn có thể làm những việc khác để hạn chế tải: chạy các công việc niceđể giảm mức độ ưu tiên của họ, chạy chúng tuần tự thay vì đồng thời, v.v.


5

Chỉ cần tìm kiếm thông qua các hệ thống sản xuất của chúng tôi, công việc lớn nhất có 862 công việc định kỳ (trên tất cả người dùng, công việc đơn lẻ lớn nhất, gốc là 117), và nó không đặc biệt toát mồ hôi với nhiều người.

Nếu bạn bắt đầu 60 công việc mỗi phút, 24x7 và tất cả đều mất hai giây để hoàn thành, thì có lẽ bạn sẽ kết thúc trong một thế giới đau khổ. Nhưng, miễn là khối lượng công việc cân bằng (với thời gian yên tĩnh và như vậy), nó sẽ phục hồi. Theo dõi tải hệ thống trong thời gian cao điểm (CPU%, I / O đĩa, ...) và lo lắng về điều đó hơn số lượng công việc thực tế.

Câu hỏi này giống như "Tôi có thể chạy bao nhiêu quy trình trước khi gặp rắc rối?". Đặt cược tốt nhất là thử nó, vì nó phụ thuộc vào hệ thống của bạn. Bản thân Cron có một vài hạn chế mà tôi đã tìm thấy, nhưng, nếu bạn đang cố gắng sắp xếp hàng chục ngàn công việc, bạn sẽ gặp nhiều căng thẳng hơn bao giờ hết.

Đo lường, đừng đoán!


1

Cron về cơ bản sẽ không bao giờ bắt đầu đấu tranh; hệ thống sẽ hoàn toàn sa lầy với khối lượng công việc lâu trước khi điều đó xảy ra.


0

Tôi đồng ý với tất cả các câu trả lời có mặt ở đây. Để hiểu nó với một góc nhìn hơi khác, hãy nghĩ về cronjobs như người dùng trên nền tảng của bạn.

Giả sử người dùng sử dụng 1% CPU của bạn (hoạt động / kết nối mạng CRUD, v.v.). Nếu có 100 người dùng như vậy (cronjobs) cùng một lúc, thì CPU của bạn sẽ đạt đến giới hạn ngưỡng và máy chủ có thể không thể xử lý cuối cùng dẫn đến sự cố.

Vì vậy, trở lại câu hỏi: "Có bao nhiêu công việc định kỳ là quá nhiều?" - Miễn là phân tích của bạn cho thấy rằng có thể không có sự tăng đột biến trong tài nguyên , thậm chí 100 cronjobs cũng tốt.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.