Serwer dedykowany - duża liczba zada

Konfiguracja serwerów, usług, itp.
robson_ek
Posty: 6
Rejestracja: 20 kwietnia 2008, 15:07

Serwer dedykowany - duŻa liczba zadań CRON

Post autor: robson_ek » 20 kwietnia 2008, 15:08

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

nightwish86
Posty: 91
Rejestracja: 10 czerwca 2007, 13:03
Lokalizacja: Wroc³aw

Post autor: nightwish86 » 20 kwietnia 2008, 15:34

Wyciąg z man crontab:

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.
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.

robson_ek
Posty: 6
Rejestracja: 20 kwietnia 2008, 15:07

Post autor: robson_ek » 20 kwietnia 2008, 22:28

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ć?

giaur
Member
Posty: 1915
Rejestracja: 25 maja 2007, 22:16

Post autor: giaur » 20 kwietnia 2008, 23:10

No tak ale w końcu będzie tego tak dużo że plik będzie zajmował np 1GB
No nie przesadzajmy, na to zeby plik urosl do 1 GB w twoim przypadku to okolo 5 lat.

robson_ek
Posty: 6
Rejestracja: 20 kwietnia 2008, 15:07

Post autor: robson_ek » 21 kwietnia 2008, 00:11

giaur pisze:
No tak ale w końcu będzie tego tak dużo że plik będzie zajmował np 1GB
No nie przesadzajmy, na to zeby plik urosl do 1 GB w twoim przypadku to okolo 5 lat.
Te 200 zadań to był tylko przykład... jest ich kilka razy więcej i ciągle rośnie.

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?

giaur
Member
Posty: 1915
Rejestracja: 25 maja 2007, 22:16

Post autor: giaur » 21 kwietnia 2008, 08:16

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.
P.S. Zadania nie muszą być w pliku ustawione chronologicznie?
Chronologicznie? A co to znaczy chonologicznie w tym przypadku? Posortowane wg godziny wykonania czy co?

loleq
Posty: 66
Rejestracja: 25 czerwca 2006, 21:59
Lokalizacja: Szczecin

Post autor: loleq » 21 kwietnia 2008, 08:38

robson_ek pisze:Zadania te są jednorazowe.
A może rozważ użycie at?

robson_ek
Posty: 6
Rejestracja: 20 kwietnia 2008, 15:07

Post autor: robson_ek » 21 kwietnia 2008, 12:27

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.
P.S. Zadania nie muszą być w pliku ustawione chronologicznie?
Chronologicznie? A co to znaczy chonologicznie w tym przypadku? Posortowane wg godziny wykonania czy co?
Tak posortowane wg daty wykonania.

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" :) ?

giaur
Member
Posty: 1915
Rejestracja: 25 maja 2007, 22:16

Post autor: giaur » 21 kwietnia 2008, 12:32

Skrypt byłby uruchamiany i on czyściłby te zadania. Mogło by tak być?
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.

Tak bezposrednio to pliku php nie uruchomisz, bo niby jak?

jaSS
Beginner
Posty: 388
Rejestracja: 02 czerwca 2006, 08:57

Post autor: jaSS » 21 kwietnia 2008, 12:57

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?

ODPOWIEDZ