Wydajność

Z MoodleDocs
Skocz do:nawigacja, szukaj

Location: Administration > Server > Performance


Można dostosować wydajność Moodle'a tak, żeby dawał sobie radę zarówno z małymi jak i dużymi ilościami użytkowników. Czynniki wpływające na wydajność są zasadniczo takie same jak w przypadku każdego systemu bazującego na PHP i bazie danych. Optymalizując swój serwer, staraj się zwrócić uwagę na to, co zrobi największą różnicę użytkownikowi. Jeśli więcej użytkowników tylko przegląda twoją witrynę, nie wprowadzając zmian do bazy danych, staraj się poprawić wydajność samego serwera WWW.


Zdobądź benchmark

Przed podjęciem czynności optymalizacyjnych, powinieneś zaopatrzyć się w benchmark dla twojego systemu operacyjnego. W przypadku Linuksa spróbuj LBS. Dla Windows użyj Monitora Wydajności (ang. Performance Monitor). Jeśli masz już wystarczającą ilość danych na temat tego, jak twój system działa aktualnie, będziesz w stanie określić, czy wprowadzone zmiany odniosły jakikolwiek efekt.

Ogólnym środkiem do zwiększenia wydajności jest używanie RAM-u (cache'owanie) i zredukowanie aktywności dysku. Szczególnie ważne jest wyeliminowanie swapowania (pliku stron). Jeśli twój system zaczyna swapować, oznacza to, że potrzebujesz więcej RAM-u.

Kolejność optymalizacji jest zazwyczaj taka: więcej pamięci RAM, wydajniejsze dyski twarde, szybsze procesory.

Skalowalność

Projekt Moodle'a (z wyraźnym oddzieleniem warstw aplikacji) pozwala na szeroką skalowalność. (Sprawdź listę dużych instalacji Moodle'a.

Duże witryny zazwyczaj mają co najmniej dwie maszyny: jedną na serwer WWW i jedną na serwer bazodanowy. Jednak w przypadku małych instalacji nie jest to konieczne.

Można rozdzielić obciążenie Moodle'a, np. przez stosowanie kilku serwerów WWW. Oddzielne serwery powinny odnosić się do tych samych zasobów (bazy danych). Niezależność pewnych warstw aplikacji to umożliwia. Podobie baza danych może być klastrem serwerów (np. klaster MySQL), ale nie jest to proste zadanie i powinieneś poszukać profesjonalnej pomocy, np. od Partnera Moodle.

Zobacz także:


Konfiguracja sprzętowa

Zauważ: Najszybszą i najbardziej efektywną metodą zwiększenia wydajności twojego serwera jest zwiększenie ilości pamięci operacyjnej (RAM) twojego serwera - zainstaluj tak dużo, jak to tylko możliwe (np. 4GB). Zwiększenie ilości pamięci zmniejszy potrzebę swapowania, a co za tym idzie - umożliwi obsługę większej ilości użytkowników.

  • Większa wydajność jest osiągana przez stosowanie najlepszych konfiguracji procesorów, np. podwójne procesory lub procesory z podwójnym rdzeniem. Współczesne BIOS-y powinny umożliwić włączenie hyperthreadingu, ale sprawdź, czy wpływa to na ogólną wydajność procesorów, używając narzędzia benchmarkującego CPU.
  • Jeśli możesz, używaj dysków twardych SCSI zamiast dysków SATA. Dyski SATA zwiększają użycie procesora, podczas gdy SCSI posiadają swoje własne wbudowane procesory. Jeśli musisz stosować dyski SATA upewnij się, że twoja płyta i same dyski wspierają NCQ (Native Command Queuing).
  • Kup dysk z niskim czasem dostępu. Poprawi to ogólną szybkość systemu, zwłaszcza w przypadku raportów Moodle'a.
  • Odpowiednio dopasuj rozmiar pliku swap. Ogólną zasadą jest ustawianie jego rozmiaru na 4 x wielkość RAM.
  • Użyj macierzy RAID. Co prawda jest wiele możliwych konfiguracji RAID, ale poniższe działa najlepiej:
    • zainstaluj sprzętowy kontroler RAID (jeśli możesz)
    • system operacyjny i plik/partycję swap ustaw na jednym zestawie dysków skonfigurowanym w RAID-1.
    • Moodle, serwer WWW i serwer bazodanowy ustaw na zestawie dysków w RAID-5.
    • Użyj gigabitowego ethernetu, aby poprawić latencje i przepustowość. Jest to szczególnie ważne, kiedy masz serwer WWW i bazodanowy rozdzielone na dwa hosty.
  • Sprawdź ustawienia swojej karty sieciowej. Możesz zwiększyć wydajność przez zwiększenia rozmiaru buforów oraz deskryptorów nadawania/odbioru (ang. transmit/receive descriptors), wypośrodkowując je z użyciem pamięci i procesora. Możesz także przenieść obliczanie sum kontrolnych TCP z systemu operacyjnego na kartę.
  • Przeczytaj dokument o obciążeniu przy 300 użytkownikach: [1]
  • Przeczytaj raport o ruchu sieciowym i obciążeniu serwera: [2]

System operacyjny

  • Możesz używać Linuksa (zalecane), jakiegokolwiek Uniksa, Windowsa lub Mac OS X jako system operacyjny serwera. Wszelkie Uniksy zazwyczaj potrzebują mniej pamięci niż Mac OS X czy też Windows do wykonania tego samego zadania, gdyż serwer jest skonfigurowany tylko z interfejsem powłoki. Dodatkowo Linux nie wymaga uiszczania opłat licencyjnych. Może jednak wymagać sporo nauki, jeśli przywykłeś do innych systemów. Jeśli posiadasz dużą liczbę procesorów działających w SMP, rozważ instalację wyspecjalizowanego systemu, takiego jak Solaris.
  • Sprawdź zalecenia producenta dotyczące optymalizacji
    • W przypadku Linuksa, zobacz stronę Linux Performance Team.
    • Zobacz też polecenie hdparm, np. hdparm -m16 -d1 może zostać użyte do uaktywnienia odczytu/zapisu na wielu sektorach i włączenie DMA. Montuj partycje z opcjami async i noatime.
    • W przypadku Windowsa, ustaw optymalizacje dla aplikacji sieciowych (Control Panel, Network Connections, LAN connection, Properties, File & Printer Sharing for Microsoft Networks, Properties, Optimization). Możesz także przeszukać stronę Microsoft TechNet pod kątem artykułów o optymalizacji.

Wydajność serwera WWW

Instalacja Firefoksa wraz z rozszerzeniem firebug pozwoli ci na monitorowanie czasu ładowania każdego komponentu strony. Rozszerzenie Yslow natomiast, zweryfikuje twoją witrynę pod kątem 14 reguł (video) Yahoo dotyczących szybkiego wczytywania stron.

Wydajność PHP

  • Aby zmniejszyć użycie procesora, zaleca się stosowanie akceleratora PHP, takiego jak APC (zalecany), PHPA, Xcache lub eAccelerator. Wybierz taki akcelerator, który działa dobrze z twoją wersją PHP i zauważ, że Turck MMCache nie jest już wspierany i może powodować problemy z PHP 5. Cache'owane strony umieszczaj na systemie plików TMPFS.
  • Wydajność PHP jest lepsza, kiedy zainstaluje się go jako moduł ISAPI Apache/IIS (nie jako CGI).
  • Sprawdź także memory_limit w php.ini, zmniejsz go do 16M dla Moodle wcześniejszych niż 1.7 (zobacz tą dyskusję na forum). Dla Moodle 1.7 i późniejszych zalecaną wartością jest 40M.


Wydajność Apache'a

  • Ustaw poprawnie dyrektywę MaxClients. Możesz użyć tego wzoru (zakłada on 80-procentowe zużycie pamięci):
MaxClients = cała dostępna pamięć * 80% / maksymalne użycie pamięci procesu Apache
Pojedynczy proces Apache'a wykorzystuje zazwyczaj 10MB pamięci, tak więc ogólną zasadą na obliczenie MaxClients jest podzielenie ilości dostępnej pamięci przez 10. Aby odczytać maksymalne zużycie pamięci przez proces Apache'a, uruchom polecenie:
#ps -ylC httpd --sort:rss
Jeśli okaże się konieczne zwiększenie wartości MaxClients powyżej 256, pamiętaj o ustawieniu dyrektywy ServerLimit.
Ostrzeżenie: Nie ustawiaj wartości MaxClients na większą, niż ilość twojej pamięci RAM - twój serwer zacznie używać więcej RAM-u niż jest obecne w systemie, a co za tym idzie - zacznie swapować.
  • Rozważ zmniejszenie ilości ładowanych modułów Apache'a w pliku httpd.conf, aby maksymalnie ograniczyć zużycie pamięci.
  • Używaj najnowszych wersji Apache'a - Apache 2 posiada ulepszony model pamięci, zmniejszający jej użycie.
  • Dla Unix/Linux, rozważ zmniejszenie MaxRequestsPerChild w httpd.conf do 20-30 (jeśli zmniejszysz poniżej tych wartości, narzut związany z forkowaniem procesów będzie większe niż wszystkie potencjalne korzyści).
  • Jeśli twój serwer jest mocno obciążony, rozważ ustawienie KeepAlive Off (zrób tak tylko wtedy, kiedy twoje strony Moodle nie zawierają łączy do zasobów lub uploadowanych obrazków). Możesz też obniżyć KeepAliveTimeout do wartości pomiędzy 2 a 5. Domyślną wartością jest 15 (sekund) - wyższa wartość spowoduje wzrost liczby procesów, które oczekują bezczynnie na połączenia. Dokładniejsza wartość KeepAliveTimeout może zostać określona przez obserwowanie, jak długo twoi użytkownicy muszą czekać na wczytanie się strony. Po zmianie jakiejkolwiek z wyżej wymienionych wartości, monitoruj użycie CPU, gdyż może pojawić się dodatkowy narzut związany z inicjowaniem nowych procesów/wątków.
  • Alternatywą dla KeepAlive Off może być ustawienie zwrotnego serwera proxy przed serwerem Moodle'a, aby cache'ował on pliki HTML z obrazkami. W takiej sytuacji będziesz mógł przywrócić używanie KeepAlive na serwerze Moodle.
  • Jeśli nie używasz plików .htaccess, ustaw zmienną AllowOverride na None, aby uniknąć szukania plików .htaccess.
  • Ustaw poprawnie DirectoryIndex, aby uniknąć negocjacji treści. Oto przykład z serwera produkcyjnego:
DirectoryIndex index.php index.html index.htm
  • Jeśli nie prowadzisz prac developerskich na serwerze, ustaw ExtendedStatus Off i wyłącz mod_info, a także mod_status.
  • Zostaw HostnamesLookups Off (domyślnie), aby ograniczyć opóźnienia na DNS.
  • Rozważ zmniejszenie wartości TimeOut do wartości z zakresu od 30 do 60 sekund.
  • W przypadku dyrektywy Options, unikaj ustawiania Options Multiviews, gdyż powoduje to skanowanie katalogu. Aby zmniejszyć operacje I/O dysku, użyj
Options -Indexes FollowSymLinks
  • Cache'owanie - Apache może przyspieszyć wczytywanie stron przez poproszenie przeglądarkę o cache'owanie pewnych elementów stron, takich jak obrazki i wczytywanie ich z lokalnego dysku (zamiast żądania ich wysyłania za każdym razem). Sposób na osiągnięcie tego zależy odrobinę od systemu operacyjnego, ale zasadniczo potrzebne są dwa kroki:
  1. Zainstaluj i włącz mod_expires - zobacz strony podręcznika man i dokumentację
  2. Dodaj ten kod do pliku konfiguracyjnego twojego vserwera, do sekcji <directory> głównego katalogu (lub do pliku .htacces jeśli AllowOverrides jest On):
<IfModule mod_expires.c>
 ExpiresActive On
 ExpiresDefault "access plus 1 seconds"
 ExpiresByType text/html "access plus 1 seconds"
 ExpiresByType image/gif "access plus 1 week"
 ExpiresByType image/jpeg "access plus 1 week"
 ExpiresByType image/png "access plus 1 week"
 ExpiresByType text/css "access plus 1 week"
 ExpiresByType text/javascript "access plus 1 week"
 ExpiresByType application/x-javascript "access plus 1 week"
 ExpiresByType text/xml "access plus 1 seconds"
</IfModule>

Efektem jest przechowanie wszystkiego oprócz HTML i XML (które zmieniają się dynamicznie) w cache'u. W ten sposób możesz zmniejszyć obciążenie o kilkaset procent. Dostosuj czas cache'owania do tego, jak często zmieniają się twoje obrazki i inne dane.

Więcej informacji: www.metaskills.net

  • Alternatywnie, możesz zwiększyć wydajność serwera WWW zastępując Apache'a lekkim serwerem lighttpd wraz z PHP w trybie fastCGI. Lighttpd potrzebuje mniej pamięci niż Apache. Jeden pojedynczy proces Apache'a wymaga więcej pamięci RAM niż cały lighttpd ze wszystkimi procesami fastCGI razem. Weź pod uwagę, że Lighttpd jest stosunkowo trudny w konfiguracji, a administracja nim zajmuje więcej czasu.

Wydajność IIS

Wszystko odnosi się do tej lokalizacji w rejestrze:

HKLM\SYSTEM\CurrentControlSet\Services\Inetinfo\Parameters\
  • Odpowiednikiem KeepAliveTimeout jest ListenBackLog. Ustaw liczbę z przedziału od 2 do 5.
  • Zmień wartość MemCacheSize, aby dopasować ilość pamięci (Mb), jaką IIS będzie używał dla jego pliku cache (domyślnie 50% całkowitej pamięci).
  • Zmień MaxCachedFileSize aby dostosować maksymalną wielkość pliku, przechowywanego w cache w bajtach. Domyślnie jest to 262,144 (256K).
  • Utwórz nową wartość DWORD, nazwaną ObjectCacheTTL, aby zmienić długość czasu (w milisekundach), jaką obiekt w cache'u przechowuje w pamięci. Domyślnie jest to 30 000 milisekund (30 sekund).

Wydajność bazy danych

Moodle zawiera skrypt, wyświetlający pewne kluczowe statystyki wydajności bazy danych z monitora wydajności ADOdb. Uruchom ten skrypt w twojej przeglądarce, tak jak w poniższym przykładzie:

http://www.mymoodle.com/admin/dbperformance.php

Wykorzystaj wyświetlone dane jako wskazówkę do poprawienia wydajności twojego serwera bazy danych.

Wydajność MySQL

Poniższe ustawienia są specyficzne dla MySQL i mogą być dopasowane w pliku my.cnf (my.ini w Windows), aby uzyskać lepszą wydajność. Plik ten zawiera listę ustawień i ich wartości. Aby zobaczyć bieżące wartości, użyj tych poleceń:

SHOW STATUS;
SHOW VARIABLES; 

Ważne: Musisz zrobić kopię zapasową twojej bazy danych przed zmianą jakichkolwiek parametrów serwera MySQL. Po każdej zmianie my.cnf, zrestartuj mysqld.

  • Włącz cache zapytań:
query_cache_type = 1. 

W większości instalacji Moodle'a, możesz ustawić poniższe:

query_cache_size = 36M 
query_cache_min_res_unit = 2K. 

Cache'owanie zapytań poprawi wydajność, jeśli rzadko uaktualniasz dane w bazie.

  • Poprawnie ustaw cache tabeli. Dla Moodle 1.6 ustaw
table_cache = 256 

(minimum), a dla Moodle 1.7

table_cache = 512 

(minimum). Cache tabeli jest używany przez wszystkie wątki (połączenia), tak więc monitoruj wartość opened_tables, dla dalszych optymalizacji - jeśli opened_tables > 3 * table_cache, to zwiększ table_cache do limitu twojego systemu. Zauważ także, że liczba table_cache będzie się zmieniać w zależności od liczby modułów i wtyczek, jakie zainstalowałeś. Znajdź odpowiednią liczbę dla twojego serwera, wykonując poniższe zapytanie. Zwróconą liczbę ustaw jako table_cache.

mysql>SELECT COUNT(nazwa_tabeli) FROM information_schema.tables WHERE table_schema='nazwatwojejbazymoodle';
  • Ustaw poprawnie cache wątku. Dopasuj wartość tak, aby użycie cache'u wątku było jak najbliższe 100% zgodnie z tym wzorem:
użycie cache'u wątku (%) = (wątki utworzone / połączenia) * 100
  • Bufor kluczy może zwiększyć szybkość wykonywania zapytań typu SELECT. Poprawny jego rozmiar zależy od rozmiaru plików indeksu (.myi). W Moodle 1.6 i poźniejszych (bez żadnych dodatkowych modułów i wtyczek) zalecaną wartością jest key_buffer_size = 32M. Idealną stan osiągniesz wtedy, kiedy na każde 100 zapytań baza danych będzie czytana z dysku tylko raz. Obserwuj więc zachowanie systemu przy różnych wartościach key_buffer_size, tak, aby poniższe nierówności były prawdziwe:
ilość_kluczy_odczytane / ilość_żądań_kluczy < 0.01
ilość kluczy_zapisanych / ilość_żądań_zapisu <= 1.0
  • Ustaw maksymalną ilość połączeń tak, aby twoi użytkownicy nigdy nie zobaczyli komunikatu "Too many connections" (zbyt wiele połączeń). Bądź ostrożny, gdyż ta wartość może mieć wpływ na zużycie pamięci. Połączenia MySQL zazwyczaj trwają milisekundy, tak więc nawet w przypadku bardzo obciążonego serwera wartość ta nie przekracza 200.
  • Zarządzaj wartością wysokiej aktywności (ang. high burst activity). Jeśli twoja instalacja Moodle'a używa dużo quizów i doświadczasz problemów z wydajnością (monitoruj wartość threads_connected - nie powinna rosnąć), rozważ zwiększenie wartości back_log.
  • Optymalizuj tabele co tydzień i po każdej aktualizacji Moodle. Dobrym zwyczajem jest także optymalizacja tabel po usunięciu dużej ilości danych, np. pod koniec semestru lub roku akademickiego. Zapewni to aktualność plików z indeksami. Stwórz kopię zapasową bazy danych, a potem użyj:
mysql>CHECK TABLE mdl_tablename;
mysql>OPTIMIZE TABLE mdl_tablename;
Pierwszymi tabelami, jakie powinieneś sprawdzić są: mdl_course_sections, mdl_forum_posts, mdl_log oraz mdl_sessions (jeśli używasz dbsessions). Wszystkie błędy muszą zostać naprawione przez REPAIR TABLE (zobacz podręcznik MySQL i ten skrypt na forum).
  • Utrzymuj dystrybucję kluczy. Co miesiąc dobrze jest zatrzymać serwer i uruchomić polecenie myisamchk. Jeśli tego nie robisz, ryzykujesz utratą danych.
  • Zredukuj liczbę tabel tymczasowych zapisywanych na dysku. Możesz ją sprawdzić przez odczytywanie wartości created_tmp_disk_tables. Jeśli jest ona stosunkowo duża (>5%) zwiększaj tmp_table_size, dopóki nie zauważysz poprawy. Zwróć uwagę, że może to mieć wpływ na zużycie pamięci operacyjnej.
  • Tabele Moodle'a są przechowywane w formacie MyISAM, tak więc wyłącz InnoDB, gdyż nie zyskasz przez niego na wydajności. Dodaj skip-innodb to twojego pliku my.cnf. Jeśli musisz używać InnoDB, będziesz musiał skonwertować wszystkie tabele Moodle'a. Aby to zrobić, uruchom ten skrypt innodb:
http://www.mymoodle.com/admin/innodb.php

Łącza do stron o wydajności baz danych

Ustawienia administratorskie Moodle

  • W Moodle 1.7 i późniejszych, ustaw typ chache'u twojego serwera: Site Admin -> Server -> Performance -> Cache type. Dostępnych jest kilka możliwości.
  • Jeśli nie masz zainstalowanego eacceleratora lub memcached, wybierz "internal" (wewnętrzny). Używa on wewnętrznego cache'u rekordów - zobacz w następnym punkcie.
  • Jeśli posiadasz pojedynczy serwer i skomplowałeś eaccelerator z obsługą współdzielonej pamięci, ustaw typ cache'u na eaccelerator.
  • Jeśli posiadasz oddzielny serwer memcached, ustaw typ cache'u na "memcached" i podaj listę adresów IP, oddzielonych przecinkami.
  • Włącz wewnętrzny cache rekordów: Site Admin -> Server -> Performance -> Record cache = True. Ustaw maksymalną ilość zaalokowanej pamięci cache w polu Int Cache Max. Uaktywni to niejako nadrzędny typ cache'owania rekordów, bez użycia żadnego mechanizmu cache'owania, pochodzącego od systemu bazodanowego, np. MySQL, PostgreSQL. Zobacz traktujący o tym wpis na trackerze.

Włącz cache języka (language cache).

  • Duże pliki dziennika (logi), mogą na dłuższą metę spowodować obniżenie wydajności. Jeśli zauważasz stopniowo postępujące opóźnienia w ładowaniu stron, zmniejsz czas przechowywania logów w Admin/Server/Cleanup.
  • Wydajność może zostać znacząco poprawiona przez użycie mechanizmu poleceń zip/unzip (w przeciwieństwie do bibliotek zip z PHP). Wejdź do Admin/Server/System Paths i wprowadź ścieżki do odpowiednich plików wykonywalnych. (Podobnie wprowadzenie ścieżki dostępu do du zwiększy szybkość listowania zawartości katalogów.)
  • Zauważ, że używanie bezpiecznych połączeń sieciowych (https, nie: http) pociąga ze sobą koszty obliczeniowe - zarówno po stronie serwera jak i klienta. W szczególności cache'owanie nie może być w pełni wykorzystywane cache'owanie, a co za tym idzie - liczba żądań rośnie. Z tej przyczyny używanie https na wszystkich stronach Moodle'a nie jest zalecane. Możesz uaktywnić https tylko dla ekranu logowania z poziomu strony konfiguracyjnej Moodle'a.
  • Sprawdź swoje filtry. Posiadanie zbyt dużej liczby aktywnych filtrów może doprowadzić do poważnego wzrostu obciążenia systemu, szczególnie na niezbyt mocnych maszynach. Ilość aktywnych filtrów ma bezpośredni wpływ na widoczne opóźnienia twojej witryny przy każdej odsłonie strony.
  • Włącz cache tekstu (text cache), wyłącz natomiast filtrowanie wszystkich napisów ("Filter all strings"), chyba że faktycznie masz taką potrzebę. Jeśli masz dylemat, zmierz wydajność twojego systemu i zobacz jak wprowadzone zmiany wpływają na czas przetwarzania strony.
  • Sprawdź ustawienia skanowania antywirusem. Mimo, iż skanowanie jest pomocne w zabezpieczaniu się przed wykorzystywaniem luk bezpieczeństwa, niektóre skanery typu "na żądanie", mogą mieć wpływ na wydajność, przez skanowanie treści stron www (plików .doc, .ppt, itd.).
  • Jeśli występują problemy z wydajnością przy wczytywaniu stron kursów, sprawdź ustawienia modułu zasobów ("Resource module settings"). Ustawienie resource_filterexternalpages jest znane z wydłużania czasu potrzebnego na wyświetlenie strony kursu i powinno być ustawione na "Nie", w celu uzyskania lepszej wydajności.
  • Sprawdź ustawienia forum. Aby zwiększyć wydajność ustaw forum_trackreadposts = No oraz forum_usermarksread = Yes (wpłynie to na wygodę użytkowania forum). Rozważ także ustawienie pory dnia, kiedy stare posty mają być usuwane z tabeli odczytów (forum_cleanreadtime), kiedy witryna jest najmniej obciążona.

Wydajność różnych modułów Moodle

Moduły aktywności Moodle, filtry i inne wtyczki mogą być aktywowane i wyłączane. Zazwyczaj nie jest to konieczne, ale możesz wyłączyć niektóre opcje (takie jak chat), jeśli nie są używane. Wskazówki dotyczące wydajności niektórych modułów:

  • Chat jest znany z generowania częstych żądań HTTP. Możesz zmniejszyć ich liczbę przez używanie aktualizacji strumieniowych ("Streamed") lub - jeśli używasz serwera WWW na Uniksie - przez uruchomienia chata w trybie demona. Dopasuj też opcje konfiguracyjne do oczekiwanego obciążenia. Zwróć szczególną uwagę na parametry chat_old_ping i chat_refresh, gdyż mają one największy wpływ na obciążenie serwera.
  • Moduł Quiz jest znany z obniżania wydajności bazy danych. Spróbuj zoptymalizować twój serwer bazodanowy przez ustawianie odpowiednich opcji. Zobacz dyskusję na forum, zawierającą skrócony opis wydajności przy 55 uczniach jednocześnie używających quizów.
    • Zobacz analizę przypadku wysokiego obciążenia serwera z trzystoma użytkownikami quizów ([3]) oraz uzupełniający raport z ruchu sieciowego i obciążenia serwera ([4])
  • Zadanie Moodle'a "Cron" jest uruchamiane przez wywołanie skryptu cron.php. Jeśli jest on wywoływany przez HTTP (np. przez wget czy też curl), może zużyć sporo pamięci na dużych witrynach. Jeśli natomiast jest uruchamiany przez wywołanie polecenia php (np. php -f /scieżka/do/katalogu/moodle/admin/cron.php), działa znacznie wydajniej.

Zobacz także

Na moodle.org było toczyło się dużo dyskusji o wydajności (w języku angielskim). Oto niektóre ciekawsze i potencjalnie użyteczne: