Serwer dedykowany - duża liczba zada
Serwer dedykowany - duŻa liczba zadań CRON
Witam,
Nie wiem czy dobry temat wybrałem (czy wogule dobre forum ) ale mam taki problem.
Mój serwis się rozrasta i za niedługo będe zmuszony przejść na dedyka.
Problem polega na tym że w moim serwisie userki dodają mase rzeczy co równa się z bardzo duża ilością zadań CRON.
Mój problem polega na tym aby rozwiązać to jak najbardziej korzystnie dla serwera.
Licząc że np dziennie będzie około 200 zadań CRON dodanych do pliku CRONTAB to po miesiącu 30 * 200 robi się już bardzo duży plik i myślę że przez to po jakimś czasie serwer zacznie mulić.
Zadania te są jednorazowe. Tzn ktoś ustawia akcje na jutro ona się wykonuje i zadanie można usunąć
Czasami zdarzy się że jest kilka akcji w tej samej minucie.
Wymyśliłem że można by zrobić osobne pliki CRONa (takie dzienne) gdzie były by zadania tylko w danym dniu i tylko w tym dniu serwer by je sprawdzał i tak tworzył by osobne pliki codziennie a ja potem co jakiś czas (bądź automat) bym stare pliki usuwał.
Pozostaje tylko kwestia techniczna czy serwer na linuxie oferuje taką możliwość? Bo za bardzo nie siedzę na linuxie
Ewentualnie może ktoś z forumowiczów jest w stanie mi pomóc?
Z góry dzięki
Pozdrawiam
Nie wiem czy dobry temat wybrałem (czy wogule dobre forum ) ale mam taki problem.
Mój serwis się rozrasta i za niedługo będe zmuszony przejść na dedyka.
Problem polega na tym że w moim serwisie userki dodają mase rzeczy co równa się z bardzo duża ilością zadań CRON.
Mój problem polega na tym aby rozwiązać to jak najbardziej korzystnie dla serwera.
Licząc że np dziennie będzie około 200 zadań CRON dodanych do pliku CRONTAB to po miesiącu 30 * 200 robi się już bardzo duży plik i myślę że przez to po jakimś czasie serwer zacznie mulić.
Zadania te są jednorazowe. Tzn ktoś ustawia akcje na jutro ona się wykonuje i zadanie można usunąć
Czasami zdarzy się że jest kilka akcji w tej samej minucie.
Wymyśliłem że można by zrobić osobne pliki CRONa (takie dzienne) gdzie były by zadania tylko w danym dniu i tylko w tym dniu serwer by je sprawdzał i tak tworzył by osobne pliki codziennie a ja potem co jakiś czas (bądź automat) bym stare pliki usuwał.
Pozostaje tylko kwestia techniczna czy serwer na linuxie oferuje taką możliwość? Bo za bardzo nie siedzę na linuxie
Ewentualnie może ktoś z forumowiczów jest w stanie mi pomóc?
Z góry dzięki
Pozdrawiam
-
- Posty: 91
- Rejestracja: 10 czerwca 2007, 13:03
- Lokalizacja: Wroc³aw
Wyciąg z man crontab:
Polecam lekturkę, zadania per user są tam właśnie opisane. Na serwerach w mojej firmie do Crona jest dodanych kilkaset zadań, nie ma żadnego obciążenia CPU.
Kod: Zaznacz cały
Internally, this cron uses a quick indexing system to reduce CPU overhead when looking for commands to execute. Several
hundred crontabs with several thousand entries can be handled without using noticable CPU resources.
No tak ale w końcu będzie tego tak dużo że plik będzie zajmował np 1GB i otwarcie tego pliku będzie potrzebowało dużo czasu.
No i ja lubię mieć porządek na serwerze i chciałbym to jakoś rozdzielić... Bo te zadania będą ciągle dodawane i też pewnie dodawanie by potem trwało dłużej.
Da się jakoś to inaczej rozwiązać?
No i ja lubię mieć porządek na serwerze i chciałbym to jakoś rozdzielić... Bo te zadania będą ciągle dodawane i też pewnie dodawanie by potem trwało dłużej.
Da się jakoś to inaczej rozwiązać?
Te 200 zadań to był tylko przykład... jest ich kilka razy więcej i ciągle rośnie.giaur pisze:No nie przesadzajmy, na to zeby plik urosl do 1 GB w twoim przypadku to okolo 5 lat.No tak ale w końcu będzie tego tak dużo że plik będzie zajmował np 1GB
A choćby za 5 lat będzie miał to 1 GB i co wtedy będę ręcznie przeszukiwał stare zadania i usuwał ręcznie kilka mln zadań? Wolałbym to dlatego dzielić na części, tylko za bardzo nie wiem jak...;(
P.S. Zadania nie muszą być w pliku ustawione chronologicznie?
Nie wiem czy to zadziala, bo sam tego nie robilem, ale ja bym probowal zrobic tak, zeby crony "czyscil sie sam".
Czyli na przyklad do crona.daily dodalbys skrypt, ktory codziennie czysci plik crontab ze zbednych wpisow - zakladam ze mozliwe jest do ustalenia ktore wpisy trzeba wywalic i ze wiesz jak to zrobic w bashu.
Czyli na przyklad do crona.daily dodalbys skrypt, ktory codziennie czysci plik crontab ze zbednych wpisow - zakladam ze mozliwe jest do ustalenia ktore wpisy trzeba wywalic i ze wiesz jak to zrobic w bashu.
Chronologicznie? A co to znaczy chonologicznie w tym przypadku? Posortowane wg godziny wykonania czy co?P.S. Zadania nie muszą być w pliku ustawione chronologicznie?
Tak posortowane wg daty wykonania.giaur pisze:Nie wiem czy to zadziala, bo sam tego nie robilem, ale ja bym probowal zrobic tak, zeby crony "czyscil sie sam".
Czyli na przyklad do crona.daily dodalbys skrypt, ktory codziennie czysci plik crontab ze zbednych wpisow - zakladam ze mozliwe jest do ustalenia ktore wpisy trzeba wywalic i ze wiesz jak to zrobic w bashu.
Chronologicznie? A co to znaczy chonologicznie w tym przypadku? Posortowane wg godziny wykonania czy co?P.S. Zadania nie muszą być w pliku ustawione chronologicznie?
hmmm... Tak jak pisałem za bardzo na linuxie sie nie znam. Tylko podstawy ale mógłbym to zrobić w PHP. Skrypt byłby uruchamiany i on czyściłby te zadania. Mogło by tak być?
Co to jest "at" ?
Mogloby tak byc, tylko ze o ile dobrze sie orientuje, to musisz miec php jako cgi (a nie jako modul Apache), wtedy tworzysz skrypt uruchamiajacy plik php za pomoca polecenia (programu) php.Skrypt byłby uruchamiany i on czyściłby te zadania. Mogło by tak być?
Tak bezposrednio to pliku php nie uruchomisz, bo niby jak?
robson_ek, a tak na marginesie czemu do jednorazowych zadań wykorzystujesz crona? Przecież cron jest do cyklicznych zadań.
Poczytaj o czymś takim jak to służy do jednorazowego wykonania zadania w wybranej chwili
Inna sprawa, skoro chcesz to napisać w php to czy nie możesz tego zapisywać w jakiejś bazie, a uruchamiać tylko jeden skrypt z php który pobiera zaplanowane zadanie, wykonuje je i usuwa wpis z bazy czy coś w tym stylu?
Poczytaj o czymś takim jak
Kod: Zaznacz cały
at
Inna sprawa, skoro chcesz to napisać w php to czy nie możesz tego zapisywać w jakiejś bazie, a uruchamiać tylko jeden skrypt z php który pobiera zaplanowane zadanie, wykonuje je i usuwa wpis z bazy czy coś w tym stylu?