Public Cloud OVHcloud - Optimisations des ressources CPU (help)
BMPCreated with Sketch.BMPZIPCreated with Sketch.ZIPXLSCreated with Sketch.XLSTXTCreated with Sketch.TXTPPTCreated with Sketch.PPTPNGCreated with Sketch.PNGPDFCreated with Sketch.PDFJPGCreated with Sketch.JPGGIFCreated with Sketch.GIFDOCCreated with Sketch.DOC Error Created with Sketch.
Frage

Optimisations des ressources CPU (help)

Von
CorentinP3
Erstellungsdatum 2020-01-17 22:37:00 (edited on 2024-09-04 10:59:08) in Public Cloud OVHcloud

Bonjour,

J'ai loué un serveur Public Cloud sous Debian 9 pour héberger un serveur Minecraft, sauf que celui-ci lag énormément lorsqu'on arrive à une vingtaine de joueurs connectés. C'est-à-dire que les TPS (ticks par secondes) sont aux alentours de 7/20.

Voici les composants de la machine :
CPU -> 4vCores x 3.1Ghz
RAM -> 15 Go
Disque -> 100 Gio SSD
Réseau -> 250 Mbps

J'ai donc voulu modifié l'utilisation des fréquences CPU depuis un fichier sauf que ce fichier en question n'est pas disponible sous Public Cloud d'après un personnel de chez OVH.
Ensuite lorsque j'affiche l'utilisation des ressources grâce à la commande "top", cela m'affiche que Java utilise 160% du CPU mais on peut aussi voir tout en haut que le CPU utilise 40%. Ce que je comprends pas, pour le coup. Ci-joint le screenshot de l'affichage du "top" :
image

Alors si, d'après la commande "top" il faut comprendre que le CPU n'est de toute façon pas assez puissant et qu'il faut que je change de machine, existe t-il une API OVH permettant automatiquement de changer de machine ? Afin de payer à l'heure une machine puissante durant les heures pleines et de basculer vers une machine moins puissante durant les heures creuses ?

Merci d'avance pour votre aide, cela fait plusieurs jours que je cherche :c


8 Antworten ( Latest reply on 2020-01-20 21:28:12 Von
CorentinP3
)

Alors oui il existe une API.
Mais pour pouvoir monter et descendre en gamme il faut utiliser les images "-flex" qui ont toutes un disque de 50Go.
Ensuite si l'appli java ne sais pas utiliser convenablement plusieurs coeurs différents ça ne servira à rien d'ajouter des coeurs en prenant un autre public cloud.

De + tu as un C2-15, ça vaut 65€ HT / mois...
A ce prix là tu as un dédié bien plus performant dans la gamme soyoustart ici :
https://www.soyoustart.com/fr/offres/1801sys54.xml

Tu as même un bien meilleur CPU pour moins cher dans les serveurs "game" ici :
https://www.soyoustart.com/fr/serveurs-game/

Bon ces serveurs n'ont qu'un seul disque SSD, donc prévoir des backups autre part.

Par conséquent dans un premier temps je te recommande de prendre un serveur game, le game2 tu as 32Go de RAM et c'est 20€ HT / mois de moins... Avec probablement un meilleur cpu, et surtout un cpu dédié rien que pour toi...

Eventuellement prends un petit kimsufi à côté pour y envoyer des sauvegardes toutes les nuits... Ou fais ça à la main vers ton propre PC...

Le public cloud ce n'est pertinent que pour des vms à l'heure que tu spawns et despawn selon tes besoins...
Sinon ça ne vaut rien à côté d'un dédié... C'est + cher à puissance équivalente, les performances sont moins stables...

Bref, commence par migrer sur un dédié chez soyoustart, tu seras + libre dans ta config, tu auras + de puissance et ça te coûtera moins cher...

Merci Sich, réponse intéressante.

Toutefois, je trouve le choix des serveurs bien plus limité que je peux avoir sur la gamme Public Cloud.
Et l'avantage des serveurs Public Cloud, c'est que je peux descendre ou monter en gamme sans devoir procéder à des réinstallations, et il est possible dessus d'installer des API très pratique, comme effectuer des snapshots automatiquement. Et je n'ai pas l'impression que ce soit disponible sur les serveurs SoYouStart. Et même si c'était disponible, j'ai bien assez galèré pour pouvoir le refaire sur une autre machine x).

Et justement, d'après toi, ce serait parce que l'application Java ne sait pas utiliser tout les coeurs du processeur ? Il doit bien y avoir un moyen d'y remédier. Ce ne serait pas optimiser de ma part de simplement monter en gamme, tout en sachant que je n'utilise qu'une partie de la puissance de la machine.

Encore merci pour ta réponse :)

Ben le public cloud c'est + cher, moins stable (y a des voisins) et le cpu a probablement des perfs par coeur + faible...
De + ton CPU, tes disques, ta RAM sont partagés entre plusieurs VM, par conséquent tu peux avoir des ralentissements car le CPU ne sera pas forcément dispo pour toi de suite.

Essaie d'installer HTOP et lance la commande quand ça lag.
Regarde si tous les coeurs sont utilisés.
Si ce n'est pas le cas ça ne sert à rien de monter en gamme sur les Public Cloud, il te faut un CPU avec de meilleurs perfs / threads, pas + de threads.

Hier dans la journée j'ai modifié quelque chose sur mon fichier d'éxecution qui contient ceci :

java -server -Xmx12G -Xms12G -XX:+UseThreadPriorities -XX:+DisableExplicitGC -Djline.terminal=jline.UnsupportedTerminal -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSIncrementalMode -XX:+CMSIncrementalPacing -XX:+CMSParallelRemarkEnabled -XX:MaxGCPauseMillis=50 -XX:TargetSurvivorRatio=90 **-XX:ParallelGCThreads=4** -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -XX:+UseBiasedLocking -XX:+StartAttachListener -Xincgc -jar spigot.jar nogui

-XX:ParallelGCThreads=4 était à 2.

Si j'ai bien compris, cela permet d'utiliser tous les coeurs, et j'ai l'impression de ressentir une différence. Même si c'est encore trop tôt pour le savoir. Peut-être que ça te dit quelque chose ?

Intéressante le commande htop. Voici un screen de ce qu'elle retourne, même si le serveur ne lague pas du tout pour l'instant. Je reviens vers toi si j'ai l'occasion de prendre un nouveau screen lorsque ça lag.

j'ai un vague souvenir effectivement sur la commande quand je faisais tourner des serveurs MC.
Tu peux essayer de jouer là dessus effectivement, et les 4 coeurs ont l'air de bosser un peu.
Regarde ce qui se passe en cas de lags.

Tu as des mods là dessus ?

Là nous sommes à 15 TPS et voici le screenshot.
Le 16,7G affiché en rouge m'étonne, je ne me souviens pas l'avoir remarqué avant...


Nous avons des plugins mais on fait notre maximum pour que ceux-ci utilisent le moins de ressources possible. Ce qui fait lag sans doute ce sont le chargement des chunks.

Tu pourrais faire ces commandes ? :
free -m
vmstat -s

Le problème de chargement de chunk ça peut avoir 2 origines :
- Le CPU qui galère
- Le disque dur qui souffre également

Pour tester le disque tu pourrais faire ces 2 commandes ? :
/bin/dd if=/dev/zero of=speedtest bs=1M count=300 conv=fdatasync

fio --name=rand-write --ioengine=libaio --iodepth=32 --rw=randwrite --invalidate=1 --bsrange=4k:4k,4k:4k --size=512m --runtime=120 --time_based --do_verify=1 --direct=1 --group_reporting --numjobs=1

ça nous donnera quelques infos sur les perfs du disque.
A "froid" et en cas de lag.

Sinon ta capture d'écran montre bien que c'est essentiellement 1 thread qui bosse... ça bouge pas mal quand le serveur bosse ? Les 4 threads sont très sollicité ?

Je t'enverrais un screen de ce que retournent ces commandes lorsqu'on ressentira du lag. En semaine nous avons moins de joueurs de connectés et donc moins de lag (maintenant que j'en veux, j'en ai pas x) )

Concernant les threads, il y en a toujours un qui prend le dessus sur les autres, même si ça ne reste pas toujours le même. En tout cas ce n'est pas équilibré.