# [system] temps wa dans top

## alpha_one_x86

Voila j'ai installer un serveur lineage, Je l'ai donc telecharger puis installer ici:

http://www.l2jdp.com/nightly/

(Ce serveur marche tres bien sous windows)

Je le configure puis je lance, le serveur login marche mais quand je lance le gameserver, et les temps wa occupe 100% j'ai un load de malade, tout ce fige.

Wa correspond a quoi?

Comment faire en sorte que mon serveur lineage ne bug plus. Ne me dite pas de passer sous windows et garder vos remarque dï¿½sobligeante

Merci de votre aide, car la je sï¿½che.

EDIT: je sais ce qu'est le temps wa mais je comprend pas d'ou il vien, et plein de serveur lineage sous sous linux.Last edited by alpha_one_x86 on Fri Dec 29, 2006 12:21 pm; edited 3 times in total

----------

## Untux

Salut alpha,

Le wa correspond au iowait (io = entrées/sorties). En général, une valeur élevée d'iowait signifie que le processeur attend que des données soient écrites/lues pour poursuivre son travail. Il est fort probable que ton serveur Lineage consomme une quantité de mémoire qui dépasse les capacités de ta RAM. Dans ce cas c'est la SWAP qui prend le relais et, évidemment, les temps de lecture/écriture sont beaucoup plus longs sur un disque dur qu'en RAM. La ligne « Swap » dans Top te permettra de confirmer ce diagnostic. Je suppose que tu savais déjà tout ça, mais il est bon de poser les fondations :)

Anigel m'avait récemment donné un truc pour la RAM/Swap. Ceci dit, si ton serveur Lineage consomme systématiquement plus que ta RAM, il n'y aura pas de miracle.

Reste donc la piste de Lineage. Peut-être peut-on configurer le serveur pour qu'il consomme moins de mémoire ? Peut-être est-il associé à une base de données qui peut, elle même, être optimisée pour ton système ? etc. Il faudrait que tu fasses un petit travail préliminaire pour déterminer précisément quel composant est à l'origine de ces ralentissements.

Bonne chance :)

----------

## alpha_one_x86

j'ai 512 de ram et sur mon swap d'1 Go 512Mo sont consomer:

```
top - 17:06:06 up 18:59,  2 users,  load average: 2.39, 1.51, 0.73

Tasks:  68 total,   1 running,  67 sleeping,   0 stopped,   0 zombie

Cpu(s):  0.3% us,  7.6% sy,  0.6% ni,  0.0% id, 90.5% wa,  0.0% hi,  0.9% si

Mem:    494640k total,   489484k used,     5156k free,      888k buffers

Swap:   979956k total,   424996k used,   554960k free,     4264k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND

  219 root      15   0     0    0    0 D  5.8  0.0   0:12.50 kswapd0

25703 root      18   2  842m 439m 3140 S  1.7 90.9   0:40.76 java

 9681 gkrellmd  15   0 26168  732  424 S  0.3  0.1   0:00.39 gkrellmd

25839 root      16   0 10536  712  520 R  0.3  0.1   0:00.11 top

    1 root      16   0  2608  196  180 S  0.0  0.0   0:00.77 init

    2 root      34  19     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/0

    3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 watchdog/0

    4 root      10  -5     0    0    0 S  0.0  0.0   0:00.01 events/0

    5 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 khelper

    6 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 kthread

    8 root      10  -5     0    0    0 S  0.0  0.0   0:01.88 kblockd/0

    9 root      20  -5     0    0    0 S  0.0  0.0   0:00.00 kacpid

  159 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 kseriod

  217 root      15   0     0    0    0 S  0.0  0.0   0:00.01 pdflush

  218 root      15   0     0    0    0 S  0.0  0.0   0:04.34 pdflush

  220 root      20  -5     0    0    0 S  0.0  0.0   0:00.00 aio/0

  221 root      20  -5     0    0    0 S  0.0  0.0   0:00.00 xfslogd/0

```

Je cherche toujour comment regler le blem, ...

edit: ici java est mon serveur lineage.

----------

## TrizoLakai

Heu

ton problème ne sera pas résolu tant que ne rajoute pas de la RAM. La swap c'est caca.

En plus si tu veux accueillir des gens avec 512 de RAM ça va pas trop le faire xD

----------

## Kangourou

Ça c'est sûr, ton serveur te prend 1 de ram, on vois bien que t'a ram est complétement pleine. Tu peux rajouter 512 pour commencer à résoudre le problème, mais j'imagine que le serveur tourne a vide en ce moment, donc tu peux y mettre au moins un bon Go si tu veux acceuillir des gens.

Par contre ça m'étonne qu'il consomme autant à vide quand même. Je dis ça je dis rien, j'ai jamais fais tourner de serveur de ce jeu, mais ça me parrait énorme   :Confused: 

----------

## grosnours

Ca irait surement mieux si c'était codé avec un vrai langage et pas en java :p

----------

## alpha_one_x86

Je suis d'accord, java=caca, et 1go a vide c'est beaucoup. Mais je peu pas me racheter de barette. Donc pas de solution.

----------

## grosnours

Tu devrais mettre "résolu" et pas "pas de solution", puisque tu as la solution mais que tu ne peux/veux la mettre en pratique.

----------

## Scullder

 *alpha_one_x86 wrote:*   

> Ne me dite pas de passer sous windows et garder vos remarque désobligeante

 

Passe sous windows =)

----------

## alpha_one_x86

C'est curieux que windows suporte mieux le swapage intensif que linux, ... je pense que je vais echanger les barette de ram avec  mon pc de bureau et donc passer a 1go. On vera si ca change quelque chose, ...

----------

## loopx

 *alpha_one_x86 wrote:*   

> C'est curieux que windows suporte mieux le swapage intensif que linux, ... je pense que je vais echanger les barette de ram avec  mon pc de bureau et donc passer a 1go. On vera si ca change quelque chose, ...

 

Non non non, moi j'y crois pas une seconde, c'est que tu as un problème ailleur.... J'ai déjà vu des démons prendre toutes la memoire ram/swap puis faire ramer un serveur pendant 5 minutes avant que le kernel n'explose ce process ... Peut etre la meme histoire...

Mais jamais, Ooo grand JAMAIS je n'irais jusqu'a dire que windows suporte mieux le swapage intensif que linux... Déjà qu'il travail beaucoup en non intensif ...

----------

## alpha_one_x86

Moi aussi je pense comme toi, car sinon windows et + perf qu'une gentoo, et l'initaialisation ca devrai marcher comme sur des roulettes, et en + mon serv n'est qu'a 1 personne, donc il devrai pas faire ca, en tout cas j'ai mit 1Go de ram, il ce lance sans trop broncher. Mais maintenant il faut que je regle d'autre probleme.... (probleme au niveau du game serveur et surment les truc compiler)

EDIT: 512 de ram sous windows je lance le client (trés lourd) et le serveur, avec 512 sous linux ça passe pas et 1Goi ça a du mal.

----------

## PabOu

ben oui, un serveur et un client, c'est pas pareil. Ca ne me semble pas illogique que le serveur ait besoin de (beaucoup) plus de ressources.

----------

## alpha_one_x86

J'ai du mal m'exprimer, le clien et le serveur sont tres lourd, mais:

sous windows avec 512 de ram: clien + serveur de lancer, tout ok

sous gentoo avec 512 de ram: serveur seul tout lag, temp wa enorme.

----------

## loopx

C'est peut etre que tu n'a pas vu que en fait, le serveur sous gentoo est un dédié => spécialement prévu pour s'en prendre plein les dents => il conserve une bonne partie des ressources pour etre sur, tandis que sur win, c'est un simple serveur   :Question: 

Je cherche juste le problème hein  :Very Happy: 

----------

## DuF

Est-ce que tu pourrais nous indiquer quelle est la taille de la JVM utilisée par lineage, quelle est la JVM que tu utilises (grosse différence de perf entre les JVMs et surtout leur mode de fonctionnement du Garbage Collector), est-ce la même que celle sous windows ? A première vue, par rapport à la commande top, on dirait que la taille allouée à la JVM est supérieure à tes 512Mo... donc forcément c'est pas top...

Sinon, pour les problèmes d'IO, il faudrait vérifier avec la commande iostat quel est le problème (débit, trop grand nombre d'écritures, etc...) et si cela n'entrainerait un problème de contention au niveau CPU (runqueue et consors).

Enfin, peut être que ton process Java passe son temps à écrire, dans ce cas sans doute qu'il faudrait baisser le niveau de log, mais ça tu le verrais avec une diminution de l'espace libre sur ton système.

----------

## alpha_one_x86

Voila ma commande de lancement:

nice -n 10 java -Xms512m -Xmx512m -cp bsf.jar:bsh-2.0b4.jar:commons-logging-1.1.jar:javolution.jar:jython.jar:c3p0-0.9.0.jar:mysql-connector-java-5.0.4-bin..jar:l2jserver.jar net.sf.l2j.gameserver.GameServer

et celle sous windows:

java -Xmx512m -cp bsf.jar;bsh-2.0b4.jar;commons-logging-1.1.jar;javolution.jar;c3p0-0.9.0.jar;mysql-connector-java-5.0.4-bin.jar;l2jserver.jar;jython.jar net.sf.l2j.gameserver.GameServer

Donc ici dans les 2 cas 512.

Je te donne les iostat demain matin quand je reboot car la je doit dormir.

Le niveau des log est pareil.

```
toc ~ # emerge -1av sun-jdk

These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild   R   ] dev-java/sun-jdk-1.5.0.08  USE="-X -alsa -doc -examples -jce (-nsplugin)" 0 kB

Total size of downloads: 0 kB

Would you like to merge these packages? [Yes/No]

```

Quand linux swap pour une app il peu apparament rien faire d'autre, alors qu'une app windows marche toujours aussi bien temps quel utilse pas de ram et pas le disk dur.

POUR loopx:

JE ne pense pas que c'est ça, mais dit moi ce que je doit changer pour faire en sorte que linux a le meme comportement que windows, et qu'il y aille un peu + bourrin, ....

EDIT: voila un extrai de iostat:

```
toc ~ # iostat

Linux 2.6.17-hardened-r1 (toc)  12/29/06

avg-cpu:  %user   %nice    %sys %iowait   %idle

           1.98    6.48    3.73   26.62   61.19

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn

sda             101.82      2504.02      2075.87    1776629    1472848

toc ~ # echo "avant lancement"

avant lancement

toc ~ # iostat

Linux 2.6.17-hardened-r1 (toc)  12/29/06

avg-cpu:  %user   %nice    %sys %iowait   %idle

           1.95    9.31    3.68   25.87   59.19

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn

sda              98.82      2481.56      1987.72    1839733    1473616

toc ~ # echo "pendant"

pendant

toc ~ # iostat

Linux 2.6.17-hardened-r1 (toc)  12/29/06

avg-cpu:  %user   %nice    %sys %iowait   %idle

           1.85    9.76    3.83   28.56   56.00

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn

sda             105.30      2824.85      2573.44    2213469    2016472

toc ~ # echo "debut du lag"

debut du lag

toc ~ # iostat

Linux 2.6.17-hardened-r1 (toc)  12/29/06

avg-cpu:  %user   %nice    %sys %iowait   %idle

           1.55    8.32    4.47   39.89   45.76

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn

sda             140.02      3437.09      2824.12    3296133    2708304

toc ~ #       
```

----------

## alpha_one_x86

En plein lag:

```
Linux 2.6.17-hardened-r1 (toc)  12/29/06

avg-cpu:  %user   %nice    %sys %iowait   %idle

           0.65    2.63    3.79   83.42    9.50

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn

sda             222.00      3603.10      1644.46   16644149    7596432

```

Last edited by alpha_one_x86 on Fri Dec 29, 2006 1:06 am; edited 2 times in total

----------

## Enlight

Tes releases c'est des nightly aussi, t'es peut être bêtement tombé au mauvais moment.

C'est un peu cryptique pour moi mais je vois :

26 décembre : Quest 402: Some changes, hopefully improving readability and performance, 

edit : en plus du hardened sur x86 ça peut être lourd côté perfs.

----------

## alpha_one_x86

Non car si non j'aurai pas cette différence windows linux. Et j'ai essayer plusieur serveur avec plusieur datapack, le serveur:

http://www.l2jdp.com/nightly/

le serveur:

Hero1711 [184] qui me demande encore + de ram (1.5Go mini) et qui fait que j'arrive a me connecter au login serveur, mais pas au gameserveur, et j'ai plein de bug, voir:

http://britania.free.fr/board/showthread.php?tid=5374

EDIT: suite a ton edit, j'ai gentoo-sources sur mon pc de bureau, avec un config pc de bureau, et j'ai le meme probleme.

----------

## Enlight

Pas le droit d'accéder à la page du forum que tu as donné pour les non inscrits.

Par contre ton machin je vois pas trop ce que ça fait exactement, donc c'est pas évident pour réfléchit à ton problème.

Par contre, ils ont un forum dédié, non? Tu leur a posé la question? (mais s'ils te donnent la réponse copie là ici stp)

edit : ah euh juste en plein lag, free -m dit quoi?

----------

## alpha_one_x86

J'ai pas de réponse, 

Voila mon post:

```
oila j'ai 1.5Go de ddr2 sur mon serveur et ça me fait ça:

Avec le pack heros:

INFO : L2JHero1711 Server Version:    ${l2j.revision}

INFO : L2JHero1711 Server Build Date: 20061210_1648

Citation :

Caused by: java.lang.OutOfMemoryError: Java heap space

WARN : NPC 21156 class not found java.lang.reflect.InvocationTargetException

        at sun.reflect.GeneratedConstructorAccessor31.newInstance(Unknown Source)

        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)

        at java.lang.reflect.Constructor.newInstance(Constructor.java:494)

        at net.sf.l2j.gameserver.model.L2Spawn.doSpawn(L2Spawn.java:404)

        at net.sf.l2j.gameserver.model.L2Spawn.init(L2Spawn.java:334)

        at net.sf.l2j.gameserver.SpawnTable.fillSpawnTable(SpawnTable.java:114)

        at net.sf.l2j.gameserver.SpawnTable.<init>(SpawnTable.java:59)

        at net.sf.l2j.gameserver.SpawnTable.<clinit>(SpawnTable.java:44)

        at net.sf.l2j.gameserver.GameServer.<init>(GameServer.java:339)

        at net.sf.l2j.gameserver.GameServer.main(GameServer.java:633)

Caused by: java.lang.OutOfMemoryError: Java heap space

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

Quand j'édite ma commande, ça me fait:

java -Dlog4j.configuration="./config/log4j.xml" -Xmx512m -cp ibmaio.jar:log4j-1.2.14.jar:bsf.jar:javolution.jar:bsh-2.0.jar:jython.jar:c3p0-0.9.0.4.jar:mysql-connector-java-3.1.10-bin.jar:l2j-gameserver.jar net.sf.l2j.gameserver.GameServer

en

java -Dlog4j.configuration="./config/log4j.xml" -Xmx1024m -cp ibmaio.jar:log4j-1.2.14.jar:bsf.jar:javolution.jar:bsh-2.0.jar:jython.jar:c3p0-0.9.0.4.jar:mysql-connector-java-3.1.10-bin.jar:l2j-gameserver.jar net.sf.l2j.gameserver.GameServer

Citation :

WARN : SpawnTable: Data missing in NPC table for ID: 1402.

WARN : SpawnTable: Data missing in NPC table for ID: 1400.

WARN : SpawnTable: Data missing in NPC table for ID: 1396.

WARN : SpawnTable: Data missing in NPC table for ID: 1398.

WARN : SpawnTable: Data missing in NPC table for ID: 1398.

WARN : SpawnTable: Data missing in NPC table for ID: 1398.

WARN : SpawnTable: Data missing in NPC table for ID: 1408.

WARN : SpawnTable: Data missing in NPC table for ID: 1404.

WARN : SpawnTable: Data missing in NPC table for ID: 1404.

WARN : SpawnTable: Data missing in NPC table for ID: 1436.

WARN : SpawnTable: Data missing in NPC table for ID: 1435.

WARN : SpawnTable: Data missing in NPC table for ID: 1398.

WARN : SpawnTable: Data missing in NPC table for ID: 1432.

WARN : SpawnTable: Data missing in NPC table for ID: 1432.

....

WARN : SpawnTable: Data missing in NPC table for ID: 1402.

WARN : SpawnTable: Data missing in NPC table for ID: 1400.

WARN : SpawnTable: Data missing in NPC table for ID: 1396.

WARN : SpawnTable: Data missing in NPC table for ID: 1398.

WARN : SpawnTable: Data missing in NPC table for ID: 1398.

WARN : SpawnTable: Data missing in NPC table for ID: 1398.

WARN : SpawnTable: Data missing in NPC table for ID: 1408.

WARN : SpawnTable: Data missing in NPC table for ID: 1404.

WARN : SpawnTable: Data missing in NPC table for ID: 1404.

WARN : SpawnTable: Data missing in NPC table for ID: 1436.

WARN : SpawnTable: Data missing in NPC table for ID: 1435.

WARN : SpawnTable: Data missing in NPC table for ID: 1398.

WARN : SpawnTable: Data missing in NPC table for ID: 1432.

WARN : SpawnTable: Data missing in NPC table for ID: 1432.

Et rien ce passe quand je clique sur le serveur avec un ping de 0.

```

----------

## DuF

Bon déjà plusieurs choses me chiffonnent (attention, ce ne sont pas des attaques personnelles, juste des choses anormales) :

1ère aberration : tu alloues autant de mémoire à ta JVM que tu as de mémoire sur ton système... Quand une appli tourne avec une JVM, il est conseillé de ne jamais dépasser une taille supérieure à 70% de la mémoire disponible. Tu devrais essayer aussi en modifiant les valeurs Xms et Xmx, car si c'est une JVM Sun par exemple, elle se débrouillera très bien à allouer ses objets et à augmenter de taille si elle a besoin. Perso je ferai un test avec 128 voir 256, histoire de voir la différence de comportement.

2ème aberration : tu indiques la valeur de wait I/O avant, pendant et après la charge, or, si j'en crois ce que tu écris, avant même d'avoir lancé ta charge, tu as 25% d'IOwait, ce n'est pas acceptable. Cette valeur, quand un système ne fait rien, doit être à 99% du temps à la valeur 0. Si je lance la commande vmstat sur ma machine, avec un intervalle de 5s entre chaque prise de mesure, que j'en fais la moyenne, j'aurais une valeur d'IOwait proche de 0, ça c'est la normalité. Dans ton cas, ton système semble avoir un problème avant même que tu aies lancé l'application en question.

3ème aberration : là c'est peut être ma faute, sans doute que je n'ai pas été précis. Quand je parle de niveau de log, je voulais parler de la JVM si elle est en mode verbeux ou non, en gros, est-ce qu'il y a écriture de fichiers log de manière monstrueuse, ce qui pourrait expliquer un IO aussi important. Le fait qu'on ait un IO aussi important avant lancement, me laisserait supposer qu'une application écrit anormalement et fortement sur disque. Si tu peux faire pendant 2-3 minutes un vmstat -n 10 pendant la charge dont tu rediriges la sortie vers un fichier, ce serait bien de voir ce qui se passe sur le système et aussi le comportement général de la mémoire (avec les si et so).

Maintenant je vais reposer ma question, quelle version de JVM utilises-tu ? Une blackdown, une Sun, une Jrockit, etc... ? Si je demande, ce n'est pas pour rien, il y a de grosses différences de performances entre ces JVM et surtout, suivant les besoins de la version de Java nécessaire.

Sinon pour la commande iostat, il faut savoir que cette commande c'est un peu comme vmstat, elle a un intérêt principalement quand on la lance à intervalle cyclique. Donc le mieux c'est de lui indiquer un intervalle de 10s (pas moins, après c'est trop couteux) et de modifier la sortie pour avoir autre chose que les Blk_read et Blk_wrtn qui sont peu parlant à mon gout. Malheureusement j'ai pas la commande sur mon linux à la maison, si j'ai le temps demain au taf j'essai de regarder quels paramêtres seraient susceptibles de nous intérêsser.Last edited by DuF on Fri Dec 29, 2006 12:57 am; edited 1 time in total

----------

## DuF

 *Quote:*   

> Caused by: java.lang.OutOfMemoryError: Java heap space

 

Bon beh la taille de ta heap est trop petite mais dans ce cas je me demande bien c'est quoi ce serveur qui demande autant de ressources, ou alors il y a une fuite mémoire sur ce serveur.... Dans ce cas faut essayer une autre version avec correction du bug...

Et sinon, vu que tu utilises log4j, tu pourrais regarder dans le log associé, le cas échéant vérifier la conf du fichier "./config/log4j.xml".Last edited by DuF on Fri Dec 29, 2006 1:01 am; edited 1 time in total

----------

## Enlight

je croyais iostat et vmstat deprecated au profit de dstat d'ailleurs!

edit : @Duf, j'avais aussi tiqué sur le coup des 512 mais je suis un peu largué, il a 512 ou un giga et demi??? Sinon en effet côté disque ça a l'air intense, faudrait peut être regarder ce qu'il y'a d'autre sur son pc...

----------

## DuF

 *Enlight wrote:*   

> je croyais iostat et vmstat deprecated au profit de dstat d'ailleurs!

 

Peut être, mais pour l'instant, sur les AIX, SunOS et linux (bien souvent du red hat AS ou EL) c'est du iostat et vmstat  :Smile:  dstat ça doit trop être jeune et limité au monde GNU non ? Car bon, déjà que sous les Unix y a pas l'option -n pour vmstat qui sert simplement pour l'affichage, alors pour le reste...  :Smile: 

Sinon moi je suis resté sur les 512 du début où il dit que sa machine à 512 de mémoire et 1Go de swap.

----------

## alpha_one_x86

Oui j'ai fait des essay avec ma machine est plusieur barrette.

En cour j'ai:

```
toc ~ # vmstat -n 10

procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----

 r  b   swpd   free   buff  cache   si   so    bi    bo   in    cs us sy id wa

 0  1 528460   6860   1164   4332 1582  802  1793   808  583   400  3  4  9 84

 0  2 528268   6184   1088   2504 1716  362  1755   362  558   318  0  4  0 96

 0  2 528480   5392   1100   2204 1596  460  1754   460  589   293  0  5  0 94

 0  2 526976   4856   1104   2712 2376  378  2518   378  602   355  0  5  0 95

 0  1 527784   6116   1092   2240 1640  541  1750   541  605   295  0  6  0 94

 0  2 525440   5140   1144   2248 2412  299  2585   304  604   387  0  5  0 95

 0  1 527472   8280   1100   2776 1655  679  1832   679  664   334  0  6  0 94

 0  1 528620   7852   1104   2500 1929  614  2015   614  627   323  0  5  0 94

 0  1 527008   6540   1112   2160 1998  263  2172   263  584   392  0  5  0 95

 2  2 527080   4988   1092   2584 1576  382  1727   382  587   352  0  3  0 97

 0  2 527116   5712   1100   2144 1728  386  1766   386  603   353  0  4  0 95

 0  2 526248   5096   1112   2704 1730  287  1915   287  589   392  0  6  0 94

 0  2 528836   6712   1108   2600 1176  622  1327   622  611   292  0  4  0 96

 0  2 529344   6124   1084   1960 1625  432  1711   432  613   366  0  5  0 95

 0  2 529068   5180   1092   1940 1658  346  1734   346  594   377  0  4  0 96

```

Je me suis mal exprimer au lancement pour moi je vien de lancer le serveur, le serveur non lancer ca donne un truc comme ça:

```
silvestre user # iostat

Linux 2.6.19-gentoo-r1 (silvestre)      12/29/06

avg-cpu:  %user   %nice    %sys %iowait   %idle

           3.07    1.36    1.43    0.72   93.42

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn

hda               0.01         0.20         0.01        974         40

sda               4.90       123.65        42.86     615525     213368

sdb               0.32         2.09        25.34      10382     126152

sr0               0.00         0.04         0.00        184          0

silvestre user #         
```

Je vous donne le java installer des qu'il a lancer ma commande, j'y suis depuis 5min, mais je croi que c'est sun-jdk

EDIT: c'est pas moi qui est fait les commande, je les ai que copier.

EDIT2: commande fini:

```
toc ~ # emerge -s sun-jdk

Searching...

[ Results for search key : sun-jdk ]

[ Applications found : 1 ]

*  dev-java/sun-jdk

      Latest version available: 1.5.0.08

      Latest version installed: 1.5.0.08

      Size of files: 91,165 kB

      Homepage:      http://java.sun.com/j2se/1.5.0/

      Description:   Sun's J2SE Development Kit, version 1.5.0.08

      License:       dlj-1.1

toc ~ # emerge -av sun-jdk

These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild   R   ] dev-java/sun-jdk-1.5.0.08  USE="-X -alsa -doc -examples -jce (-nsplugin)" 0 kB

Total size of downloads: 0 kB

Would you like to merge these packages? [Yes/No]        
```

EDIT3: ce que j'ai d'autre sur mon pc: apache, samba (serveur), vsftpd, gkrellmd, ssh, mais tant que je lance pas le serveur lineage, tout est trés performant et satisfesant.

EDIT4: (no comment)

```
toc ~ # iostat

Linux 2.6.17-hardened-r1 (toc)  12/29/06

avg-cpu:  %user   %nice    %sys %iowait   %idle

           0.60    2.29    3.92   85.09    8.10

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn

sda             227.38      3618.13      1549.58   19588469    8389400

```

----------

## DuF

Intérêssant tout ça.

Déjà le iostat avant lancement me rassure, même si ça pourrait être mieux  :Wink: 

Bon sinon le vmstat est catastrophique  :Smile:  mais tu t'en doutais. En gros, à première vue on dirait une application qui se lance... sauf que là elle reste dans cet état trop longtemps. Déjà il n'y a pas de mémoire cache, c'est pas mal, ça signifie que le système se comporte normalement dans un cas pareil.

Ensuite il y a des écritures/lectures swap en continu, c'est mauvais, mais tu as aussi du bi/bo dans la partie io du vmstat, si tu fais un man sur la commande, tu verras qu'il s'agit des écritures disques. Je me plante toujours entre les vmstat des différents OS, il faudrait que je vérifie si c'est décorrellé du si/so, a priori non, mais cela ne change rien au fait que tu as beaucoup d'écriture/lecture sur disque et un disque c'est lent, plus que de la mémoire.

Bon ensuite on voit qu'il y a un voir deux process bloqué (2ème colonne), encore une fois pas bon, sans doute ton process java qui est bloqué par une lecture/écriture, mais c'est bizarre, car en général, si c'est ça, ça doit apparaitre dans la runque. Quand le process est bloqué, c'est plus inquiétant. Faudrait essayer de lancer ta JVM sans log4j pour voir.

Dernier point, peux-tu lancer la commande 

```
java-config -L
```

 ça nous indiquera quelle JVM est actuellement utilisée.

PS : Vu que j'ai un métier et que ce n'est pas encore les vacances, je vais me coucher :-p

----------

## alpha_one_x86

Pour "Faudrait essayer de lancer ta JVM sans log4j pour voir. " comment faire?

```
toc ~ # java-config -L

The following VMs are available for generation-2:

*)      Sun JDK 1.5.0.08 [sun-jdk-1.5]
```

Mon hdd est un sata II 250Go seagate, donc c'est pas lui qui freine. (il est bien reconu) 

Et oui la le random access time est énorme.

Une fois le serveur lancer avec un pc qui pompe sur samba:

```
toc ~ # top

top - 09:49:26 up  2:01,  4 users,  load average: 0.64, 1.96, 2.53

Tasks:  69 total,   1 running,  68 sleeping,   0 stopped,   0 zombie

Cpu(s):  0.3% us,  1.3% sy,  0.0% ni, 97.3% id,  0.7% wa,  0.3% hi,  0.0% si

Mem:    494640k total,   489108k used,     5532k free,     4716k buffers

Swap:   979956k total,   527352k used,   452604k free,    47568k cached

```

EDIT:

quand je met comme commande:

nice -n 10 java -Xms300m -Xmx300m -cp bsf.jar:bsh-2.0b4.jar:common.....

j'ai:

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

----------

## alpha_one_x86

C'est quoi la version de java la + rapide?

----------

## Scullder

 *alpha_one_x86 wrote:*   

> C'est quoi la version de java la + rapide?

 

AMHA, celle de sun

----------

## DuF

 *alpha_one_x86 wrote:*   

> C'est quoi la version de java la + rapide?

 

Il n'y a pas de rêgle établi, cela dépend principalement du type d'application. Personnellement, quand j'obtenais de très bonnes performances, c'était avec la Jrockit de BEA en mode deterministic (non parralèle quoi).

Pour le problème lié à la heap size, essaie de modifier les valeurs suivantes : 

```
-XX:MaxHeapFreeRatio=xx Maximum percentage of heap free after GC to avoid shrinking

-XX:MinHeapFreeRatio=xx Minimum percentage of heap free after GC to avoid expansion 
```

Pour le log4j, je ne connais pas comment réagi lineage, mais perso j'enleverai la partie de commande associée à log4j (-Dlog4j.configuration="./config/log4j.xml")

Et sinon essaie aussi avec une taille à 128 pour le Xms et à 512 pour le Xmx. Peut être que cela permettra de lancer l'application et voir ses besoins en ressources mémoires.

Et si on n'arrivera toujours pas à comprendre ce qui se passe, alors faudra sans doute ajouter -verbose:gc redirigé dans un fichier, pour avoir le comportement du GC lorsque tu lances ta JVM, car peut être que le souci ne vient pas de la gestion mémoire (mais bon vu les exceptions sur la heap, ce serait étonnant).

----------

## alpha_one_x86

J'ai mit a jour mon serveur(seulement le datapack), voici ma nouvelle ligne de commande:

```
#! /bin/sh

nice -n 10 java -Xms128m -Xmx512m -cp bsf.jar:bsh-2.0b4.jar:commons-logging-1.1.jar:javolution.jar:jython.jar:c3p0-0.9.0.jar:mysql-connector-java-5.0.4-bin.jar:l2jserver.jar net.sf.l2j.gameserver.GameServer

#./GameServer_loop.sh &
```

Je teste en ce moment...

EDIT: toujour long avec ce serveur et la j'ai: 

```
NPCTable: Error getting NPC template ID 32098 while trying to load skill trainer data.

NPCTable: Error getting NPC template ID 32098 while trying to load skill trainer data.

NPCTable: Error getting NPC template ID 32098 while trying to load skill trainer data.

NPCTable: Error getting NPC template ID 32098 while trying to load skill trainer data.

NPCTable: Error getting NPC template ID 32098 while trying to load skill trainer data.

NPCTable: Error getting NPC template ID 32098 while trying to load skill trainer data.

NPCTable: Error getting NPC template ID 32098 while trying to load skill trainer data.

```

 et plein de truc du genre...

----------

## DuF

L'erreur avec NPCTable, après une recherche rapide sur google, c'est lié au serveur lineage, donc là faut voir du côté du support de lineage, à moins qu'un spécialiste lineage soit dans la salle. Mais bon c'est mauvais que le programme fasse autant d'erreurs comme ça, surtout qu'à priori il n'arrive pas à charger des données, cela laisserait supposer que l'installation est incomplète.

----------

## alpha_one_x86

J'ai demander a un specialiste de lineage c'est normal, et marche toujour, bien meme avec ces errors (ca vire un mob bugger). 

Toute les version de l2j marche pareil avec 512 de ram....

----------

