Odświerzona strona alfahost.pl – hosting eZ Publish
Postanowiłem odświeżyć stronę projekt-u AlfaHost. Hosting AlfaHost to dedykowane rozwiązanie dla eZ Publish. AlfaHost oferuje nie tylko hosting eZ Publish na zalecanej przez producenta platformie systemowej ale również pełną opiekę nad projektem klienta. W oferujemy aktualizacje eZ Publish jak również optymalizację aplikacji pod kątem SEO czy nanoszenie poprawek według życzenia klienta.
Zapraszam serdecznie do odwiedzenia serwisu: alfahost.pl
Kompresja backup-ów
Postanowiłem przeprowadzić mały test trzech kompresorów pod kątem kopii bezpieczeństwa na serwerach dedykowanych.
Kryterium wyboru: szybkość
Na pierwszy rzut oka zdecydowanym zwycięzcą pod względem prędkości jest pbzip2, jeżeli jednak uwzględnimy czas przesłania backupu do zewnętrznej maszyny sprawa nie jest taka oczywista.
Backupy w obrębie datacenter
Typowa prędkość łącza dla dedyka w przeciętnym datacenter to 100Mbit/s . Przesyłając testowe archiwa z prędkością 10MB/s (~100Mbps), całkowite czasy backupów prezentowały by się następująco:
| Kompresor | Czas kompresji [s] | Czas przesyłania [s] | Suma [s] |
| pbzip2 -9 | 125.4 | 161,4 | 286,8 |
| pxz -6 | 377,6 | 147,1 | 524,7 |
| pxz -9 | 520 | 119,7 | 639 |
Składowanie backup-ów na maszynie podłączonej po DSL-u (np. 10Mbps)
| Kompresor | Czas kompresji [s] | Czas przesyłania [s] | Suma [s] |
| pbzip2 -9 | 125.4 | 1614 | 1739,4 |
| pxz -6 | 377,6 | 1471 | 1848,6 |
| pxz -9 | 520 | 1197 | 1717 |
Jak widać dla 10Mb/s, dla tego konkretnego przypadku, już warto poświęcić więcej czasu na mocniejsze pakowanie.
Wyniki testów kompresji
Platforma testowa:
Core i7-920 , 8GB DDR3, 2xHDD Soft-RAID1
Dane testowe:
Archiwum testbkp.tar o rozmiarze (3020625920 B) zawierające typowy content kilku domen: skrypty php – cms-y, treści graficzne i video, e-maile, zrzuty baz danych, etc.
Pbzip2
Zrównoleglona wersja bzip-a wykożystująca potencjał prcesorów wielordzeniowych.
Pbzip2 – maksymalny stopień kompresji
sv:~$ time pbzip2 -k -9 ./testbkp.tar real 2m5.454s user 15m27.846s sys 0m6.904s
Plik wynikowy osiągnął rozmiar : 1693109513B w czasie: ~125.4s
Współczynnik kompresji: 1,78
PXZ (Zrównoleglone LZMA)
Algorytm LZMA jak również samo narzędzie pxz jest bardzo zachłanne na pamięć RAM zwłaszcza dla dużych rozmiarów słownika. Dla czterech wątków i maksymalnej kompresji (-9) aplikacja pochłonęła prawie 4GB RAM-u.
PXZ - cztery wątki z domyślną siłą kompresji (6)
sv:~$ time pxz -T4 -k ./testbkp.tar real 6m17.618s user 21m23.840s sys 0m9.845s
Plik wynikowy: 1551405988B, czas ~377,6s
Współczynnik kompresji: 1,95
PXZ – cztery wątki maksymalna kompresja (9)
sv1:~$ time pxz -T4 -9 -k ./testbkp.tar
real 8m40.054s
user 26m43.616s
sys 0m10.485s
Plik wynikowy: 1254802132B, czas: ~520s
Współczynnik kompresji: 2,4
XZ (xz-utils)
Jednowątkowe rozwiązanie LZMA (z modyfikacjami), zwycięzca pod kątem współczynnika kompresji, przegrany pod kątem czasu wykonania.
XZ – maksymalna kompresja
sv1:~$ time xz -9 -k ./testbkp.tar real 22m20.350s user 22m16.063s sys 0m3.476s
Plik wynikowy: 1222993376B, czas: ~1340,3s
Współczynnik kompresji: 2,47
XZ – ekstremalnie maksymalna kompresja (parametr extreme)
sv1:~$ time xz -9e -k ./testbkp.tar real 34m18.240s user 34m14.356s sys 0m3.220s
Plik wynikowy: 1220250608B, czas ~2058,2s
Współczynnik kompresji: 2,47
Warning: mysql_real_escape_string() expects parameter 1 to be string, object given in /home/ioperation/domains/blog.i-operation.net/public_html/wp-includes/wp-db.php on line 787
Warning: mysql_real_escape_string() expects parameter 1 to be string, object given in /home/ioperation/domains/blog.i-operation.net/public_html/wp-includes/wp-db.php on line 787
Instalacja PXZ pod Debianem
Zrównoleglona kompresja LZMA
Do kompilacji pxz potrzebujemy źródła aplikacji oraz biblioteki liblzma. Zakładam że posiadasz już zainstalowane środowisko do kompilacji (build-essentials).
Źródła liblzma (liblzma-dev) dla Debain/Lenny znajdziemy w repozytoruim lenny-backports natomiast paczka dla Debian/Squeeze jest już dostępna w głównym repozytorium.
apt-get install liblzma-dev
Następnie pobieramy najświerzszą wersję pxz prosto ze źródła (github) tutaj lub pobrać git-em:
git clone https://github.com/jnovy/pxz.git
Przechodzimy do katalogu ze źródłami pxz i kompilujemy / instalujemy w systemie:
make && make install
Na stronie autora pxz dostępne sa również gotowe pakiety dla Fedory
Warning: mysql_real_escape_string() expects parameter 1 to be string, object given in /home/ioperation/domains/blog.i-operation.net/public_html/wp-includes/wp-db.php on line 787
Warning: mysql_real_escape_string() expects parameter 1 to be string, object given in /home/ioperation/domains/blog.i-operation.net/public_html/wp-includes/wp-db.php on line 787
Migracja z plesk-a do virtualmin-a
Jeden z klientów w końcu zdecydował się na przeniesienie swoich serwisów, ze swojej zapuszczonej przez lata maszyny na nowy serwer. Migracja o dziwo przebiegła bez większych problemów.
Konfiguracja Virtualmin-a
Świeżo postawiony Virtualmin na Debianie 5.0 (co prawda 6.0 Squeezee już był dostępny ale klient się uparł na PHP 5.2 ) wymagał jedynie kilku dostosowań w konfiguracji tak, aby klienci najmniej inwazyjnie odczuli przeprowadzkę. W zasadzie to najważniejsze jest ustawienie schematu tworzenia kont pocztowych na „user@domain” i pełną nazwę domeny przy tworzeniu nazwy dla nowego konta użytkownika.
Plesk 8.2.0 - robienie backupów
Niestety nie znalazełem jak w plesk-u z shella wylistować domeny dla tego przygotowałem sobie listę ręcznie (Kopiuj, Wklej) z panelu.
Utworzenie backupów w plesk-u per domena wykonujemy następująco:
for i in `cat ./dlist.txt`; do /usr/local/psa/bin/pleskbackup domains --skip-logs $i /srv/psa_dump/perdomain/$i ; done
Gdzie:
dlist.txt – to plik z lista domen
/srv/psa_dump/perdomain/ - katalog docelowy dla plików
Import backupów plesk-a do Virtualmin-a
Po przekopiowaniu na nową maszynę backupów przed importem warto jeszcze sprawdzić czy jest miejsce w /tmp (domyślnie webmin ma ustawiony katalog tymczasowy na /tmp/.webmin) i w razie potrzeby zmienić w konfiguracji webmin-a na inny folder.
Migrację odpalamy następująco:
for i in `cat /home/backup.plesk/plesk_dump/dlist.txt`; do virtualmin migrate-domain --source /home/backup.plesk/plesk_dump/$i --type plesk --webmin >> /migration.log 2>&1 ; done
Gdzie:
/home/backup.plesk/plesk_dump/dlist.txt – plik z listą domen do importu
/home/backup.plesk/plesk_dump/ – katalog gdzie leżą backupy z plesk-a
/migration.log – log z migracji do przejrzenia
Włączenie spam-flitrów i antyvir-a dla wszystkich domen
virtualmin enable-feature --all-domains --spam virtualmin enable-feature --all-domains --virus
Warning: mysql_real_escape_string() expects parameter 1 to be string, object given in /home/ioperation/domains/blog.i-operation.net/public_html/wp-includes/wp-db.php on line 787
Warning: mysql_real_escape_string() expects parameter 1 to be string, object given in /home/ioperation/domains/blog.i-operation.net/public_html/wp-includes/wp-db.php on line 787
Warning: mysql_real_escape_string() expects parameter 1 to be string, object given in /home/ioperation/domains/blog.i-operation.net/public_html/wp-includes/wp-db.php on line 787
Warning: mysql_real_escape_string() expects parameter 1 to be string, object given in /home/ioperation/domains/blog.i-operation.net/public_html/wp-includes/wp-db.php on line 787
Warning: mysql_real_escape_string() expects parameter 1 to be string, object given in /home/ioperation/domains/blog.i-operation.net/public_html/wp-includes/wp-db.php on line 787