Naujausias pranešimas: Samba kritinis pažeidžiamumas
frame

Sveiki apsilankę!

Jei forume lankaisi pirmą kartą, kviečiame registruotis ir prisijungti prie diskusijų.

Prisijungti Registruotis

Java memory alocation

armyarmy Naujokas (-ė)
edited 2013 vasario 6 Į Pagalba
Laba diena, instaliavau java jdk 7u11 pagal čia esančius instaliavimo gidus, leidžiant vieną programą viskas pasileidžia išskiria atmintį, o leidžiant kitą rašo klaidą:

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

#!/bin/bash

DBHOST=localhost
USER=root
PASS=
DBNAME=l2jdb

err=1
until [ $err == 0 ];
do
        #mysqlcheck -h $DBHOST -u $USER --password=$PASS -s -r $DBNAME>>"log/`date +%Y-%m-%d_%H:%M:%S`-sql_check.log"
        #mysqldump -h $DBHOST -u $USER --password=$PASS $DBNAME|zip "backup/`date +%Y-%m-%d_%H:%M:%S`-l2jdb_gameserver.zip" -
        [ -f log/java0.log.0 ] && mv log/java0.log.0 "log/`date +%Y-%m-%d_%H-%M-%S`_java.log"
        [ -f log/stdout.log ] &&  mv log/stdout.log "log/`date +%Y-%m-%d_%H-%M-%S`_stdout.log"
        [ -f log/chat.log ] && mv log/chat.log "log/`date +%Y-%m-%d_%H:%M:%S`-chat.log"
        java -Dfile.encoding=UTF- -Xms2048m -Xmx3096m -Xmn1024m -Xss2024m -XX:PermSize=2024m -XX:MaxPermSize=2024m -XX:ParallelGCThreads=2 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSIncrementalMode -XX:+CMSIncrementalPacing -XX:CMSIncrementalDutyCycleMin=0 -XX:CMSIncrementalDutyCycle=10 -XX:+CMSParallelRemarkEnabled -XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=90 -XX:MaxTenuringThreshold=31 -XX:+AggressiveOpts -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:gc.txt -cp lib/*:l2jfrozen-core.jar com.l2jfrozen.gameserver.GameServer > log/stdout.log 2>&1
        err=$?
        sleep 10
done

padidinu ram duomenis ir vistiek nieko. Serveryje yra 4GB ram.


žemiau pateiktas login serveris pasileidžia puikiai:
#!/bin/bash

err=1
until [ $err == 0 ]; 
do
	[ -f log/java0.log.0 ] && mv log/java0.log.0 "log/`date +%Y-%m-%d_%H-%M-%S`_java.log"
	[ -f log/stdout.log ] && mv log/stdout.log "log/`date +%Y-%m-%d_%H-%M-%S`_stdout.log"
	java -Xmx512m -XX:+UseSerialGC -XX:+AggressiveOpts -cp lib/*:l2jfrozen-core.jar com.l2jfrozen.loginserver.L2LoginServer > log/stdout.log 2>&1
	err=$?
#	/etc/init.d/mysql restart
	sleep 10;
done

Komentarai

  • IV_RomanLIV_RomanL Interneto vizija
    edited 2013 vasario 6
    Sveiki,

    peržiūrėkime kiek realiai atminties jūs alokuojat kiekvienam Java procesui:

    Login serveris: 512 MB
    Žaidimo serveris: 3096 MB

    Viso: 3608 MB

    Jūs turite serveryje 4096 MB, paskaičiuokim 4096 - 3608 = 488 MB lieka laisva. Klausimas: ar kartais to 488 MB RAM neišnaudoja kiti servisai esantys jūsų serveryje? Man rodos jog išnaudoja ir išnaudoja kur kas daugiau nei 488 MB.

    Problemos sprendimas: sumažinkite RAM kiekį skiriamą žaidimo serveriui (-Xmx) arba padidinkite RAM kiekį iki bent jau 6 GB virtualiam serveriui.
Norėdami palikti komentarą, turite prisijungti arba registruokis.
Dedikuoti.lt
Šiame forume rasite informaciją kaip atlikti serverio administravimą, konfigūravimą, įvairių tarnybų bei papildomų aplikacijų diegimą. Taip pat pateiksime rekomendacijų, skirtų serverių saugumui, monitoringui ir optimizavimui. Kviečiame prisijungti prie dedikuotų serverių administratorių bendruomenės, dalyvauti diskusijose ir praplėsti savo žinias serverių administravimo srityje!
© 2007 - 2020 Dedikuoti.lt forumas, visos teisės saugumos.