Ile RAM VPS potrzebowałbym do uruchomienia Wordpress, Apache, SVN i MySQL?

20

Czy ktoś ma dane liczbowe na temat tego, ile ram VPS (bez możliwości rozerwania) potrzebowałbym apache z wordpress i subversion, a także instancji MySQL?

Apache będzie hostował kilka stron i SSL. MySQL miałby tylko bazę danych Wordpress. Witryny te mają niewielki ruch, mniej niż 1 000 wyświetleń dziennie.

Kyle Brandt
źródło

Odpowiedzi:

19

Pamiętaj, że każdy pracownik Apache zużywa około 20-25 MB, więc jeśli Twoje 1k trafień będzie równo rozmieszczonych w czasie w ciągu 8 godzin dziennie, możesz pomyśleć o konieczności obsługi tylko 0,03 żądań na sekundę.

Zakładając, że cały ruch jest skoncentrowany w ciągu zaledwie 1 godziny dziennie (to oczywiście nie jest), powinieneś obsłużyć około 0,28 żądań na sekundę.

Innym problemem jest to, ile pamięci dostałeś DB, jednak łatwo jest to wiedzieć i jest to dość stały koszt.

W najgorszym przypadku będziesz musiał przenieść całą bazę danych (o mój boże !, w tym przypadku refaktoryzuj SQL! :)) .. więc dwukrotnie poprzednią liczbę ..

Krótka odpowiedź to (IMHO) 128 MB wystarcza, obficie. Serwer będzie bezczynny, a pamięć będzie wolna przez długi czas, biorąc pod uwagę ruch, jaki sobie wyobrażasz.

Mam 20 domen na VPS z 256 MB od 3 lat, są w porządku ... a łączna liczba trafień to około 1500-2000 ...

OK, pamięć jest dziś tania, ale chłopaki ... czy wiesz, ile kosztuje jeden gigabajt?

PS: Mówię oczywiście o systemie Linux, a nie o zużyciu przez system operacyjny 4 GB tylko na GUI :)

drAlberT
źródło
13

W przypadku opisywanego niskiego ruchu, powinieneś mieć mały plan (256 MB - 384 MB). Kiedy Apache i MySQL są zainstalowane, ich domyślne konfiguracje zakładają, że pracują z większą dostępną pamięcią RAM, co może powodować problemy. Użyj następującego punktu jako dobrego punktu wyjścia i dostosuj w razie potrzeby:

W pliku konfiguracyjnym Apache 2 (zwykle znajdującym się w /etc/apache2/apache2.conf lub /etc/apache2/httpd.conf):

StartServers 1
MinSpareServers 3
MaxSpareServers 6
ServerLimit 24
MaxClients 24
MaxRequestsPerChild 3000

W pliku konfiguracyjnym MySQL (zwykle znajdującym się w /etc/mysql/my.cnf):

key_buffer = 16K
max_allowed_packet = 1M
thread_stack = 64K
table_cache = 4
sort_buffer = 64K
net_buffer_length = 2K

Ponadto, jeśli nie korzystasz z tabel InnoDB, powinieneś wyłączyć obsługę InnoDB, dodając następujący wiersz:

skip-innodb
tasaro
źródło
Mam kilka z tych linii wymienionych w apache2.conf. zmienić je wszystkie? oznakowane są: prefork MPM, worker MPM,event MPM
vsync
2

Miałem problemy z moim przy 512 MB pamięci RAM, dopóki nie przełączyłem się na FastCGI. To znacznie poprawiło wydajność. Do tego czasu miałem 30 MB wolnego miejsca (oczywiście nie licząc pamięci podręcznej) i skończyłem z ponad 100 MB wolnego miejsca.

Twój przebieg może się oczywiście różnić w zależności od ruchu na Twojej stronie. A gdy ruch zacznie się zwiększać, możesz przełączyć się na nginx.

Aby kupić sobie komfort, zwiększyłem do 1 GB.

BTW, jestem hostowany na prgmr.com i jeszcze nie widziałem, żeby ktoś dotykał ich cen.

Matt Simmons
źródło
1
Dzięki za prgmr.com, uwielbiam hasło „Nie zakładamy, że jesteś głupi”. :-)
Kyle Brandt,
Tak, że wraz z faktem, że Luke udziela zniżek na najtańsze rzeczy członkom LOPSA, dlatego poszedłem z nimi
Matt Simmons,
Wiem, że jest za stary, ale teraz myślę, że digitalocean jest miejscem, gdzie ludzie mogą powiedzieć, że nikt ich nie pokona :)
Ali
1

Korzystam z podobnej konfiguracji na VPS z 256 MB pamięci RAM, ale uruchamiam lighttpd zamiast Apache. Najpierw wypróbowałem Apache, ale to było za dużo dla 256 MB VPS. Jeśli chcesz korzystać z Apache, muszę powiedzieć, że możesz sobie poradzić z 512 MB pamięci RAM.

W zależności od tego, kogo używasz do hostingu VPS, możesz zacząć od mniejszego VPS, a następnie w razie potrzeby zwiększyć rozmiar bez konieczności ponownej konfiguracji serwera.

Jason Alford
źródło
0

Powinieneś być w porządku z 1 GB, ale wybierz 2 GB, jeśli możesz, to znaczny krok wydajności dla większości nowoczesnych systemów operacyjnych.

Siekacz 3
źródło
1
1 GB byłby ogromny po zabiciu za 1 000 trafień dziennie.
ceejayoz
Zakładasz, że używa Linuksa, a jeśli chce uruchomić system Windows 2008 64-bitowy ???
Chopper3
Pamiętaj, że dotyczy to serwera Apache, MySQL i PHP. W szczególności w przypadku Apache nie chciałbym używać serwera Windows.
thomasrutter
0

Używam nginx + php-fastcgi zamiast Apache, ale z bardzo podobnym ładowaniem aplikacji. Używam svn + ssh do mojego dostępu do subversion, więc nie działa proces svnserve, z wyjątkiem sytuacji, gdy uzyskuję dostęp do repozytorium. To wszystko działa na Ubuntu 8 LTS.

W tej chwili używam 174mB z 256mB, a strona jest dość responsywna (średni czas odpowiedzi 500ms dla wyświetleń Wordpress)

             total       used       free     shared    buffers     cached
Mem:           256        252          3          0         22         56
-/+ buffers/cache:        174         81
Swap:          511         12        499

Polecam spojrzeć na lekki serwer frontendowy taki jak nginx lub lighttpd zamiast Apache + mod_php. Nawet Apache + mod_fastcgi proxy do php-fastcgi zajmie mniej pamięci.

Jeśli pójdziesz ścieżką Apache, mój żołądek mówi, że 512mB prawdopodobnie by załatwiło sprawę. 1 lub 2 GB pamięci wydaje się znaczną nadwyżką, zwłaszcza biorąc pod uwagę, jak większość dostawców VPS zwiększa swoje koszty, gdy dochodzi do większych konfiguracji.

James F.
źródło
0

Przez jakiś czas walczyłem z tym.

Otoczenie AlbertT działało doskonale. Ustawienia mysql zrobiły CZYSTĄ różnicę, a teraz strona świetnie się przegląda. http://laterboltz.com

W pliku konfiguracyjnym MySQL (zwykle znajdującym się w /etc/mysql/my.cnf):

key_buffer = 16K max_allowed_packet = 1M thread_stack = 64K table_cache = 4 sort_buffer = 64K net_buffer_length = 2K

Ponadto, jeśli nie korzystasz z tabel InnoDB, powinieneś wyłączyć obsługę InnoDB, dodając następujący wiersz:

skip-innodb


źródło