# Java/Tomcat auf Virtual Server



## veneficus (4. Mai 2006)

hi zusammen,

ich hab mir kürzlich bei 1und1 einen virtual server gemietet und hatte eigentlich die absicht, da nen tomcat drauf laufen zu lassen.

jetzt hab ich java, tomcat, sämtliche apache module und den ganzen kram installiert, wollte den tomcat starten und nix hat sich getan.
dann hab ich mal das shutdown-script ausgeführt und da kam dann folgende fehlermeldung:


```
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.
```

mein nächster schritt war, einfach mal "java -version" einzutippeln. da wurde mir dann genau der selbe mist hingerozt...

genaue daten zu dem server kann ich leider nicht sagen, weil ich mich mit diesen vservern noch nicht so gut auskenn, aber falls es jemandem hilft, hier die ausgabe von "free -m"


```
total       used       free     shared    buffers     cached
Mem:          4031       4016         14          0       1123       1647
-/+ buffers/cache:       1246       2785
Swap:        10000        770       9230
```
(mich wundert sehr, dass ich nur 14mb speicher zur verfügung hab...)

und hier die ersten zeilen eines "top":


```
top - 23:52:50 up  4:47,  1 user,  load average: 0.00, 0.00, 0.00
Tasks:  39 total,   1 running,  38 sleeping,   0 stopped,   0 zombie
Cpu(s):   0.0% user, 100.0% system,   0.0% nice,   0.0% idle
Mem:   4128520k total,  4113448k used,    15072k free,  1150776k buffers
Swap: 10241016k total,   789348k used,  9451668k free,  1686588k cached
```

meine vermutung wäre, dass der ram in meinem vserver nur "virtuell" ist und java damit nix anfangen kann, aber das kanns ja eigentlich nicht sein, oder?

ich hoffe, mir kann da jemand helfen...

grüße!


----------



## 0xdeadbeef (5. Mai 2006)

Damit Tomcat auf einem VServer läuft, sollte man am besten 256MB oder mehr zugesichertes RAM für den eigenen Account haben. Bei vielen Anbietern bekommt man aber gar keine bestimmte Menge an RAM zugesichert und man kriegt halt das ab, was verfügbar ist. Vergiß nicht, daß sich alle User auf dem Server das RAM teilen und teils lassen die preiswerten Anbieter erschreckend viele VServer-Instanzen auf einem Server laufen.


----------



## veneficus (5. Mai 2006)

hmm... und was sagt mir das jetzt?
dass ich wahrscheinlich keine chance hab java sachen auf dem teil laufen zu lassen?


----------



## Guest (5. Mai 2006)

Was sagt 1&1 dazu?


----------



## veneficus (5. Mai 2006)

dazu sagen die eigentlich nicht viel.
ich hab mal ne mail an den support geschrieben mit der antwort
"hinsichtlich ihrer anfrage zur benutzung von tomcat empfehlen wir die 1&1 root-server"

da hab ich wohl das "empfehlen" überbewertet...

bevor ich das ding bestellt hab, hab ich aber noch eine tussi vom support angerufen und die hat gesagt, es müsste schon gehn.
das dumme daran ist, dass die frau sich nicht so richtig überzeugt angehört hat weil sie wahrscheinlich keine ahnung hatte und mir nur vorgelesen hat, was ihr "system" ihr sagt...

hat zu dem thema noch jemand ne idee?
die vm muss doch auch im swap space laufen (wie auch alle anderen programme)...

immerhin ist da ein apache, php, virtuozzo, plesk, ftp-server, etc drauf installiert und man kann auch game-server drauf laufen lassen. die brauchen ja auch ordentlich saft und der server macht, wenn man sich per ssh einloggt und rechenlastige sachen macht, einen extrem flinken eindruck.


----------



## Kawa-Mike (5. Mai 2006)

Mit dem Parameter -Xmx kannst du den RAM-Verbrauch von Java einschränken. Versuche es mal mit 256 oder 128 MB.
Bei meinem ersten Versuchen mit einem VServer (vserver4you) hat es geholfen.
Allerdings habe ich dann die Datenbank nicht zum laufen bekommen, bzw. umgekehrt, wenn die Datebank lief, startete Tomcat nicht.
Ich glaube nicht, das du mit einem VServer eine Tomcat-Webapp sauber zum laufen kriegst. Da solltest du doch lieber etwas mehr Geld ausgeben und einen Rootserver mieten. Das spart eine Menge nerven.


----------



## AlArenal (5. Mai 2006)

Kawa-Mike hat gesagt.:
			
		

> Mit dem Parameter -Xmx kannst du den RAM-Verbrauch von Java einschränken. Versuche es mal mit 256 oder 128 MB.



Was soll das bringen, wenn er laut obiger Ausgabe gewaltige 4 MB RAM und 10 MB Swap zur Verfügung hat?


----------



## veneficus (5. Mai 2006)

free -m gibt die größen in mb aus, d.h. ich hab 4gb ram und 10gb swap, aber von den 4gb kann ich anscheinend immer nur zwischen 10 und 50 mb nutzen...

da müsste aber doch trotzdem java laufen, oder? zumindest im swap.


----------



## AlArenal (5. Mai 2006)

Du solltest mal bei 1&1 nachhalen wieviel RAM die den VMs zuweisen, egal ob physisch oder virtuell. Auch mit 50 MB wirst du nicht weit kommen


----------



## Kawa-Mike (5. Mai 2006)

@ Arenal:
Der physiche Speicher wirde auf die virtuellen Server verteilt. Man weiss also vorher nicht wieviel Speicher du am Ende bekommst.
Immerhin ist die Chance besser, je weniger RAM du anforderst.

Bei meinen ersten Versuchen mit einem VServer hat es geholfen. Allerdings kann ich nur empfehlen, eine Rootserver zu nehmen, mit mindestens 256 MB Ram.

Gruss


----------



## AlArenal (5. Mai 2006)

Die können aber doch sicher irgendwelche unteren und oberen Grenzen ziehen, egal was die am Ende für eine Virtualisierungslösung benutzen.


----------



## 0xdeadbeef (5. Mai 2006)

Hängt alles vom Anbieter und der verwendeten Virtualisierungslösung ab. Es gibt auch Lösungen, die das RAM statisch verteilen und dann nicht mal swappen können.
Einige Anbieter garantieren z.B. 256MB RAM. Neuerdings übrigens auch Server4You.de beim vServer Basic, nachdem Tomcat da wohl früher auch nicht so toll lief. Allerdings ist mir rätselhaft, wie man bei 6GB RAM und bis zu 100 Kunden pro Server jedem Kunden 256MB RAM (Bzw. sogar noch mehr) garantieren kann.
Viele der Angebote kann man ja ein paar Wochen testen.


----------

