Skocz do zawartości
Zaloguj się, aby obserwować  
Zarys

[VPS] vipower problem z javą

Polecane posty

Witam,

 

zamówiłem dziś najtańszą opcję VPS w vipower, aby móc odpalić kilka aplikacji java. Do standardowo instalowanego debiana 6 dorzuciłem xfce i vnc, bo bez środowiska graficznego nie można odpalić tej aplikacji. Na innej maszynie(domowej) z taką samą konfiguracją systemową, jedna sztuka aplikacji zabiera od 20 do 45MB ramu co się zgadza z danymi pokazywanymi w 'top'. Jednakże w vipower po jednokrotnym odpaleniu na dzień dobry w 'top' mam ponad 400MB używanej pamięci więcej.

Czyżby w vipower są jakieś sztuczne ograniczenia?

 

Oczywiście w ich panelu nie mogę dodać zgłoszenia, bo zamiast przenosić do odpowiedniego formularza to przenosi do rejestracji nowej domeny...

 

Pozdrawiam

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Oczywiście w ich panelu nie mogę dodać zgłoszenia, bo zamiast przenosić do odpowiedniego formularza to przenosi do rejestracji nowej domeny...

 

Hey.

 

W przypadku nie działania systemu "ticketów" śmiało używaj adresów e-mailowych - w tym przypadku bok@vipower.pl

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jak się okazało OpenVZ w ogóle nie nadaję się pod jave. Znalazłem ciekawą ofertę w vihost.pl tylko niestety w opisie mają taki chaos, że jedno zdanie wyklucza drugie jeżeli chodzi o Xen na ich maszynach, który niby sobie dużo lepiej radzi z javą.

Polećie jakiś dobry VPS, gdzię java będzie zachowywała się jak na domowym komputerze przy czym cena im mniejsza tym lepiej, jedyne wymganie to min. 1GB ramu.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Witam,

 

zamówiłem dziś najtańszą opcję VPS w vipower, aby móc odpalić kilka aplikacji java. Do standardowo instalowanego debiana 6 dorzuciłem xfce i vnc, bo bez środowiska graficznego nie można odpalić tej aplikacji. Na innej maszynie(domowej) z taką samą konfiguracją systemową, jedna sztuka aplikacji zabiera od 20 do 45MB ramu co się zgadza z danymi pokazywanymi w 'top'. Jednakże w vipower po jednokrotnym odpaleniu na dzień dobry w 'top' mam ponad 400MB używanej pamięci więcej.

Czyżby w vipower są jakieś sztuczne ograniczenia?

 

Oczywiście w ich panelu nie mogę dodać zgłoszenia, bo zamiast przenosić do odpowiedniego formularza to przenosi do rejestracji nowej domeny...

 

Pozdrawiam

 

W OpenVZ nie powinno być żadnego problemu z javą. Przez dobrych parę miesięcy pracowałem z Javą na VPS-ie OpenVZ (vihost.pl VPS3). VPS miał 2GB ramu gwarantowane, a w burst 3GB i nie było problemu. Natomiast problemem może być wykrywanie ilości dostępnej pamięci przez JVM. Twój VPS ma dość małą pamięć RAM, dlatego spróbuj uruchomić swoją aplikację z opcją:

 

java -Xms64m -Xmx64m <twój program java>

jeżeli 64 MB pamięci to za mało dla Twojej aplikacji to możesz dać 128 MB:

 

java -Xms128m -Xmx128m <twój program java>

 

 

To powinno wyeliminować problemy z JVM-em. Daj znać czy pomogło.

Edytowano przez ritchey (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

@Matmaxalez, nie mogłem edytować posta ;)

 

 

@ritchey, stworzyłem launcher z tą formułą i ścieżką prowadzącą do pliku .jar, lecz po wykonaniu żadnej reakcji(dodałem "-jar" po java, ale efekt ten sam). Pliki .jar odpalam bezpośrednio z folderu przez VNC z tego co widzę taką komendą "/usr/lib/jvm/java-6-sun-1.6.0.26/bin/java -jar %f" dodałem do niej na końcu tą formułę (nie wiem czy w dobrym miejscu), odpala się, tylko znowu wcina ponad 400MB.

 

EDIT, przesunięcie %f na koniec pomogło, przy ustawieniu na 64m bierze lekko ponad 200MB, przy 32m trochę poniżej 200MB, ale nadal daleko do tych 50MB...

Edytowano przez Zarys (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

@Matmaxalez, nie mogłem edytować posta ;)

 

 

@ritchey, stworzyłem launcher z tą formułą i ścieżką prowadzącą do pliku .jar, lecz po wykonaniu żadnej reakcji(dodałem "-jar" po java, ale efekt ten sam). Pliki .jar odpalam bezpośrednio z folderu przez VNC z tego co widzę taką komendą "/usr/lib/jvm/java-6-sun-1.6.0.26/bin/java -jar %f" dodałem do niej na końcu tą formułę (nie wiem czy w dobrym miejscu), odpala się, tylko znowu wcina ponad 400MB.

 

EDIT, przesunięcie %f na koniec pomogło, przy ustawieniu na 64m bierze lekko ponad 200MB, przy 32m trochę poniżej 200MB, ale nadal daleko do tych 50MB...

Wiesz, należy rozróźnić 2 różne rzeczy:

 

1. Pamięć jaką JVM przydziela dla aplikacji Java

2. Pamięć jaką JVM zajmuje w systemie operacyjnym.

 

Mimo że ta pierwsza to np. 64 MB, to JVM od systemu bierze znacznie więcej niż 64 MB (ponieważ sam JVM też trochę potrzebuje). Parametry Xms i Xmx dotyczą tej pierszwej pamięci.

 

A tak w ogóle to jakiego JVM-a używasz ? Najlepiej wpisz coś takiego:

java -version

i wklej tu wynik.

Edytowano przez ritchey (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Wiesz, należy rozróźnić 2 różne rzeczy:

 

1. Pamięć jaką JVM przydziela dla aplikacji Java

2. Pamięć jaką JVM zajmuje w systemie operacyjnym.

 

Mimo że ta pierwsza to np. 64 MB, to JVM od systemu bierze znacznie więcej niż 64 MB (ponieważ sam JVM też trochę potrzebuje). Parametry Xms i Xmx dotyczą tej pierszwej pamięci.

 

A tak w ogóle to jakiego JVM-a używasz ? Najlepiej wpisz coś takiego:

java -version

i wklej tu wynik.

 

 

RSS:

Resident set size = the non-swapped physical memory that a task has used; Resident Set currently in physical memory including Code, Data, Stack

 

VSZ:

Virtual memory usage of entire process = VmLib + VmExe + VmData + VmStk

 

 

OpenVZ zlicza pamięć VSZ. Dopiero od wersji kernela 2.6.32 z RHEL6, gdzie jest wprowadzony ichni vswap zlicza/próbuje zliczać RSS.

Sposobem, aby zmniejszyć wielkość VSZ, jest zmniejszenie domyślne dużej wartości pamięci stosu.

 

polecam zapoznać się dodatkowo:

http://wiki.openvz.org/Stack_size

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

A tak w ogóle to jakiego JVM-a używasz ? Najlepiej wpisz coś takiego:

java -version

i wklej tu wynik.

 

java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) Client VM (build 20.1-b02, mixed mode, sharing)

 

 

RSS:

Resident set size = the non-swapped physical memory that a task has used; Resident Set currently in physical memory including Code, Data, Stack

 

VSZ:

Virtual memory usage of entire process = VmLib + VmExe + VmData + VmStk

 

 

OpenVZ zlicza pamięć VSZ. Dopiero od wersji kernela 2.6.32 z RHEL6, gdzie jest wprowadzony ichni vswap zlicza/próbuje zliczać RSS.

Sposobem, aby zmniejszyć wielkość VSZ, jest zmniejszenie domyślne dużej wartości pamięci stosu.

 

polecam zapoznać się dodatkowo:

http://wiki.openvz.org/Stack_size

 

Standardowo miałem ustawiony na 8192. Stopniowo zmniejszałem w dół, aż do 128, ale żadnej różnicy nie zauważyłem. Nadal mniej niż 180MB nie zżera.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Ok, mam taką propozycję.

Napisz proszę prosty program:

 


import java.io.Console;

public class memtest {
public static void main(String[] args) {
	byte[] buf = new byte[10 * 1024 * 1024];
	Console con = System.console();
	con.readLine("Press ENTER to exit...");
}
}

Skompiluj go i uruchom w konsoli:

javac memtest.java
java memtest

Program zaalokuje 10 MB pamięci i będzie czekać na wciśnięcie klawisza ENTER. Uruchom wtedy drugie SSH i sprawdź zużycie pamięci przez JVM-a. Po sprawdzeniu wciśnij ENTER w pierszej konsoli aby zakończyć program.

To dużo wyjaśni. Ponieważ jeżeli taki prosty program też będzie łykać 300MB to znaczy, że coś jest z JVM-em lub VPS-em. Jeżeli natomiast powyższy program łyknie niewiele ponad 10 MB to znaczy, że problem tkwi w Twojej aplikacji (obstawiam właśnie tą opcję).

 

Daj znać jaki wynik.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Łyka prawie 400MB, to musi być coś z VPS(zapewne przez OpenVZ). Na dużo słabszym domowym komputerze z prawie taką samą konfiguracją w systemie, mam dwa razy więcej aplikacji odpalonych i mieszczę się spokojnie w 1GB ramu.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Łyka prawie 400MB, to musi być coś z VPS(zapewne przez OpenVZ). Na dużo słabszym domowym komputerze z prawie taką samą konfiguracją w systemie, mam dwa razy więcej aplikacji odpalonych i mieszczę się spokojnie w 1GB ramu.

No cóż - dziwna sprawa. Samo OpenVZ nie powinno powodować problemu - gdyż tak jak mówiłem - pracowałem kilka m-cy na takim VPS-ie i nie było takich "efektów" jak u Ciebie.

 

Problem tak bardzo mnie zaciekawił, że postanowiłem sam go sprawdzić i właśnie przed chwilą wykupiłem w ViPower VPS 1. Czekam na aktywację - jak tylko VPS będzie aktywowany to przetestuję :)

 

Dam znać jaki wynik.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jak coś to mogę podrzucić na PW tą aplikacje do testów, ale zapewne na każdej innej będzie też zżerało olbrzymią ilość ramu.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jak coś to mogę podrzucić na PW tą aplikacje do testów, ale zapewne na każdej innej będzie też zżerało olbrzymią ilość ramu.

Raczej nie ma sensu sprawdzać Twojej aplikacji, skoro wcześniej sprawdzałeś że inne zachowują się tak samo. Czekam obecnie na aktywację VPS-a, ale w ViPower chyba te aktywacje są przeprowadzane ręcznie - więc zapewne dopiero jutro rano będzie aktywny.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

VPS już aktywny. Póki co potwierdzam występowanie problemu. Najprostszy program zabiera ok 400 MB RAM.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

VPS już aktywny. Póki co potwierdzam występowanie problemu. Najprostszy program zabiera ok 400 MB RAM.

Potestowałem trochę, uruchom program z takimi parametrami:

 

 

java -Xms48m -Xmx48m -Xss512k -XX:MaxPermSize=4m \
 -XX:ReservedCodeCacheSize=4m memtest

48 MB powinno wystarczyć dla Twojego programu. Natomiast łączne zużycie pamięci jest na poziomie 105 MB (czyli sam JVM bierze jakieś 55 MB dla siebie). Czy takie zużycie jest dla Ciebie zadowalające ?

 

P.S. możesz też ustawić i wyeksportować zmienną JAVA_OPTS aby te parametry były domyślne.

Edytowano przez ritchey (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Wielkie dzięki za pomoc. Teraz mieści się w 120MB. Jest dużo lepiej niż 400MB początkowe, ale i tak nie do końca odpaliłem wszystko co chciałem i mam wolne kilkanaście MB z 2GB ramu, mam nadzieje, że vipower nie będzie jakoś bardzo to przeszkadzało. Czy na VPS(openvz) innych dostawców działałoby to lepiej?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Być może na VPS-ach (openvz) w innych firmach działało by lepiej. Chodzi o to że JVM widzi 2 GB RAM-u podczas gdy tak naprawdę gwarantowny masz 1 GB. JVM natomiast allokuje ilość pamięci zależną od dostępnego RAM-u (np. 1/4 dostępnego RAM-u).

Z tego co wyczytałem - to kluczowym parametrem openvz dla JVM-a jest privvmpages. Poszukaj w google info na ten temat. Np. tu:

http://forum.proxmox.com/threads/1495-Proxmox-OpenVZ-memory-Java-VMs-and-Zimbra

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się

Zaloguj się, aby obserwować  

×