1b.app
Link kopiert -

Vorschläge zur Optimierung der Cron-Arbeit

Ich stieß auf das Problem, dass die Aufgabe nach dem Start von Massenänderungen in einen Minuten-Cron fiel und die Arbeit für 2,5 Stunden lahmlegte.
Angebot:
1. Manuell gestartete Aktionen sollten die Ausführung automatischer Aktionen nicht stoppen. Ich gehe davon aus, dass die Lösung darin besteht, einen separaten Cron für manuelle Aufgaben zu erstellen.
2. In meinem Fall habe ich damit begonnen, 120.000 Kontaktkarten neu zu speichern. 1,5 Stunden lang hat sich keine einzige Karte geändert, aber der Cron friert ein und das Problem konnte nur mit Ihrer Hilfe gelöst werden. Ich halte es einfach für notwendig, zumindest einen akzeptierenden Task-Dispatcher zu erstellen, mit dem Sie einen hängengebliebenen oder zu langen Prozess ohne die Hilfe eines Entwicklers manuell beenden können.
3. Bei der Ausführung einer großen Anzahl von Aufgaben im Ausführungsprozess wird deutlich, dass sich einige der Karten oder Prozesse bereits geändert haben und einige noch in der Warteschlange stehen. Wenn p1 durchgeführt wird, stören selbst langfristige Prozesse die Arbeit lebenswichtiger Prozesse nicht. Wenn Sie jedoch „zu viele“ Aktionen ausführen, bleibt der Cron hängen, die Aktionen werden jedoch nicht verfolgt. Subjektiv scheint es, dass das Boxen nicht so viele Aufgaben bewältigen kann und einfach für immer einfriert. Vielleicht lohnt es sich, die maximale Anzahl der Aufgaben im Paket zu begrenzen? Irgendwie narrensicher.
Vielen Dank für die Gelegenheit, am Prozess der Verbesserung des Boxens teilzunehmen :)
Die ursprüngliche Frage ist in der Version verfügbar: ru

Antworten:

1. Nein, Sie können dies nicht tun, denn wenn Ihre Massenoperationen gleichzeitig mit dem Minuten-Cron etwas mit demselben Kontakt tun, erhalten Sie jetzt Datenverlust oder warten nur. 3. Es hängt alles davon ab, wie viel Speicher Sie zugewiesen haben Crons können Sie so viel Speicher geben, dass sie ausreichen, um 200.000 Datensätze zu verarbeiten
24.02.2021, 14:58
Originalkommentar zur Version verfügbar: ru

Danke Igor. Jetzt habe ich eine Massenaktion zum Stufenwechsel für 5500 Prozesse gestartet. Nach ein paar Minuten sehe ich, dass bereits 500 Prozesse die Bühne gewechselt haben, der Rest wartet noch in der Schlange. Ich sehe, dass der Prozess im Gange ist. Beim Start einer Massenänderung von 120.000 Kundenkarten in 1,5 Stunden wurde keine einzige Karte geändert. Cron hat einfach aufgehört. Daher wage ich den Schluss, dass es manchmal nicht ums Warten geht, sondern ums Scheitern an einer Vielzahl von Aufgaben. Aus dieser Situation müssen Sie einen Ausweg finden. Führen Sie eine automatische Überprüfung durch und starten Sie neu, wenn es einfriert (wenn Sie einen manuellen Neustart ablehnen). Oder erstellen Sie einen Schutz, der das Überschreiten der Kapazitätsgrenze nicht zulässt. Andernfalls führe ich eine Standardoperation durch und erhalte ein Einfrieren. Es sieht aus wie ein Fehler. 3. Wird die Speicherzuweisung von Ihnen vorgenommen?Oder sprechen wir über den gesamten Serverspeicher?Wie viel wird jetzt zugewiesen?
24.02.2021, 18:22
Originalkommentar zur Version verfügbar: ru

Übrigens habe ich in 5500 Prozessen gestartet, die ich die Bühne gewechselt habe. Auf der Bühne sende ich eine Nachricht an den Viber-Bot. Die Prozedur dauerte eine Stunde. Minutenkronen hängen die ganze Zeit. Es stellt sich heraus, dass ich während der Arbeitszeit keinen Newsletter erstellen kann, da der Rest der Prozesse gestoppt wird. Ich stimme zu, dass Sie die Funktionen des Systems nicht kennen, daher können meine Vorschläge falsch sein. Aber ich sehe ein Problem. Welche Lösung sehen Sie? Ressourcen wechseln? Schließlich können Kunden große Aufgaben haben?
24.02.2021, 18:53
Originalkommentar zur Version verfügbar: ru

Sergey Ptashkin Der Kunde schrieb: Daher wage ich die Schlussfolgerung, dass es manchmal nicht um Warten geht, sondern um Scheitern aufgrund einer großen Anzahl von Aufgaben. Aus dieser Situation müssen Sie einen Ausweg finden. Führen Sie eine automatische Überprüfung durch und starten Sie neu, wenn es einfriert (wenn Sie einen manuellen Neustart ablehnen). Oder erstellen Sie einen Schutz, der es Ihnen nicht erlaubt, die Grenzen der Möglichkeiten zu überschreiten.
Neustarts und Überprüfungen werden von den Servereinstellungen und nicht vom System durchgeführt , das System kann die Cron-Funktion nicht verstehen oder ist aus dem Arbeitsspeicher abgestürzt. Die Speicherdrosselung ist auch auf der Serverseite.
Sergey Ptashkin Client schrieb: Und so mache ich eine Standardoperation und erhalte ein Einfrieren. Es sieht nach einem Fehler aus. [/ Zitat] Ich habe Ihnen den Grund dafür beschrieben, da das System auf verschiedenen Servern mit unterschiedlichen Kapazitäten installiert wird, dann habe ich kein Recht, die in Kronen gesendete Datenmenge zu begrenzen
Ptashkin Sergey Client schrieb: 3. Ist Speicherzuweisung von Ihnen durchgeführt? memory_limit) wird auf dem Server für PHP-Skripte zugewiesen, konfiguriert vom Systemadministrator, in diesem Fall haben Sie 512 Megabyte, um eine Minute auszuführen cron
Sergey Ptashkin Der Client schrieb: By the way, der Start bis in 5500 Prozesse die Bühne wechselten. Auf der Bühne sende ich eine Nachricht an den Viber-Bot. Die Prozedur dauerte eine Stunde. Minutenkronen hängen die ganze Zeit. Es stellt sich heraus, dass ich während der Arbeitszeit keinen Newsletter erstellen kann, da der Rest der Prozesse gestoppt wird. Ich stimme zu, dass Sie die Funktionen des Systems nicht kennen, daher können meine Vorschläge falsch sein. Aber ich sehe ein Problem. Welche Lösung sehen Sie? Ressourcen wechseln? Schließlich können Kunden große Aufgaben haben?
Die Lösung hier ist nur die Speichererweiterung
25.02.2021, 14:21
Originalkommentar zur Version verfügbar: ru

[/quote] Die Lösung hier ist nur die Speichererweiterung [/quote] Danke. Geändert auf 4 GB. Versuchen
01.03.2021, 14:59
Originalkommentar zur Version verfügbar: ru

Igor, wir konnten die Aufgabe nicht alleine bewältigen, ich bitte um Ihre Hilfe. Gestern habe ich in der Datei php.ini von memory_limit = 512M auf memory_limit = 4096M geändert und dann Apache neu gestartet, danach führt der Minuten-Cron 2 Minuten lang Aufgaben aus. Heute Morgen war die php.ini-Datei leer. Und Sie sagten, wir hätten einen Fehler gemacht. Heute wurde die Datei wiederhergestellt und alles funktionierte. Nochmal geändert und das Problem trat wieder auf. Igor, ich bestehe nicht darauf, dass du unser Training machst. Wir sind bereit, diese Aufgabe Fachleuten anzuvertrauen. Sie können diese Aufgabe auswerten und wir werden dafür bezahlen. Danke
02.03.2021, 14:58
Originalkommentar zur Version verfügbar: ru

Sergey Ptashkin Der Kunde schrieb: Igor, wir konnten die Aufgabe nicht alleine bewältigen, ich bitte um Ihre Hilfe. Gestern habe ich in der Datei php.ini von memory_limit = 512M auf memory_limit = 4096M geändert und dann Apache neu gestartet, danach führt der Minuten-Cron 2 Minuten lang Aufgaben aus. Heute Morgen war die php.ini-Datei leer. Und Sie sagten, wir hätten einen Fehler gemacht. Heute wurde die Datei wiederhergestellt und alles funktionierte. Nochmal geändert und das Problem trat wieder auf. Igor, ich bestehe nicht darauf, dass du unser Training machst. Wir sind bereit, diese Aufgabe Fachleuten anzuvertrauen. Sie können diese Aufgabe auswerten und wir werden dafür bezahlen. Danke
1h
02.03.2021, 15:06
Originalkommentar zur Version verfügbar: ru

OK. Es gibt 9 Stunden Verbesserungen in der Bilanz. Du kannst rennen. Wenn es nicht schwierig ist, schreiben Sie hinein, was wir falsch gemacht haben.
02.03.2021, 15:14
Originalkommentar zur Version verfügbar: ru

Jetzt hängt oft der Prozess ShopSupplier_Processor_Avail in der Krone, der dauert 70 Sekunden, das habe ich noch nicht gesehen. Ich verstehe den Grund nicht.
02.03.2021, 15:35
Originalkommentar zur Version verfügbar: ru

Guten Tag. Igor, die Aufgabe ist nicht dringend, aber ich möchte die Frist klarstellen, um zu verstehen, dass die Aufgabe nicht vergessen wurde. Danke
04.03.2021, 09:39
Originalkommentar zur Version verfügbar: ru

Ich bitte auch um Hilfe mit freiem Speicherplatz. Bitte Empfehlungen geben. Müssen Sie die Festplatte vergrößern oder müssen Sie etwas aufräumen?
09.03.2021, 10:42
Originalkommentar zur Version verfügbar: ru

Ptashkin Sergey Client schrieb: Ok. Es gibt 9 Stunden Verbesserungen in der Bilanz. Du kannst rennen. Wenn es nicht schwierig ist, schreiben Sie hinein, was wir falsch gemacht haben.
Ich habe die Einstellungen registriert, 1h abgeschrieben
Ptashkin Sergey Client schrieb: Jetzt hängt der Prozess ShopSupplier_Processor_Avail oft in der Krone, er läuft 70 Sekunden lang, das habe ich vorher nicht gesehen. Ich verstehe den Grund nicht. [/ quote] Dies ist eine Neuberechnung der Warenverfügbarkeit
Ptashkin Sergey Client schrieb: Ich bitte auch um Hilfe bei freiem Speicherplatz. Bitte Empfehlungen geben. Müssen Sie die Festplatte vergrößern oder etwas aufräumen?
Ich habe die Protokolle auf der Festplatte und den Müll gesäubert, der Speicher wurde freigegeben
09.03.2021, 14:56
Originalkommentar zur Version verfügbar: ru

Danke Igor. Könnten Sie eine Liste von Arbeiten vorschlagen, die mit einer bestimmten Häufigkeit auf dem Server ausgeführt werden sollten? Damit ich verstehe, dass es einmal im Monat (oder zwei) notwendig ist, eine Reihe von Servicearbeiten zu bezahlen und durchzuführen. Senden von 2000 Nachrichten über Turbosms. Cron hängt eine Stunde lang. Die Optimierungswünsche bleiben bestehen, damit Kleinigkeiten vor dieser Zeit nicht haltmachen. Vielleicht fällt dir noch was ein.
12.03.2021, 14:33
Originalkommentar zur Version verfügbar: ru

Sergey Ptashkin Client schrieb: Danke, Igor. Könnten Sie eine Liste von Arbeiten vorschlagen, die mit einer bestimmten Häufigkeit auf dem Server ausgeführt werden sollten? Damit ich verstehe, dass es einmal im Monat (oder zwei) notwendig ist, eine Reihe von Servicearbeiten zu bezahlen und durchzuführen.
einmal alle 3 Monate ist es besser, den nginx-Cache zu löschen
Sergey Ptashkin Client schrieb: Ich sende 2000 Nachrichten über Turbosms. Cron hängt eine Stunde lang. Die Optimierungswünsche bleiben in Kraft, damit minutiöse Aktionen vor dieser Zeit nicht aufhören. Vielleicht fällt dir noch was ein.
es wird ab der nächsten Version des Systems sein
12.03.2021, 16:11
Originalkommentar zur Version verfügbar: ru

Bitte beteiligen Sie sich am Dialog. Wenn Sie etwas zu sagen haben - schreiben Sie bitte einen Kommentar. Für die Teilnahme benötigen Sie ein Mobiltelefon und einen SMS-Code zur Identifizierung. Melden Sie sich an und schreiben Sie einen Kommentar