Performance nécessaire VPS - Serveur de jeux DLike

Inscrit
15 Juin 2017
Messages
33
Reactions
0
#1
Salutations!
J'viens recueillir des avis sur les VPS ( OVH et compagnie )

Je bosse depuis pas mal de temps sur un projet multijoueur D like, que je recode de a à z ( client unity et serveur dotnet core)
J'ai pas mal avancé, ( je passerai vous présenter ça à l'occasion ), mais maintenant j'en arrive a m'interoger sur les performances nécessaires pour une mise en prod du projet.

Jusqu'à maintenant le serveur était hébergé sur une machine locale, dédié à ça, 4go, i3 à 2,3ghz, et une connexion fibre à 1gb/s. Ca tourne niquel mais c'est vrai que les test ne sont pas tres realiste ( peux de donnés, joueurs simultanés etc) et je commence à m'interroger sur l'intérêt d'un vps.
Notamment que certains hébergeur propose des offres qui m'ont pas l'air degueue aux alentours de 20€/mois.

Du coup certains ont-ils déjà utilisé un vps pour un serveur de jeux d-like ? Est-ce que ca tourne bien ? Et si oui vous aviez quoi comme config ?
Merci d'avance pour vos réponses !
 

BlueDream

Administrateur
Membre du personnel
Inscrit
8 Decembre 2012
Messages
2 010
Reactions
149
#2
Le problème, c'est que c'est difficile de te donner des conseils techniques sur l'utilisation d'un programme que l'on ne connait pas.
Tu dois faire de vrais tests de mise en production, toi seul est capable de déterminer les limites de ton application.
Après, il y a des manières de gérer ta data et tes threads, pour optimiser son utilisation.

Après, 4go, i3, je ne sais pas combien tu comptes gérer d'utilisateurs, mais ça reste des grosses perfs pour une application serveur.
 
Inscrit
15 Juin 2017
Messages
33
Reactions
0
#3
@BlueDream .. ouai j'me doute bien, d’où ma question pour savoir si certains avaient deja vecu une experience similaire ;)
Ce qui est sur, avec un nombre débile de donné random en DB, le serveur à vide consomme 50mo, et 2% temps cpu ( update des map ( spawn des créature à intervalles, et leurs déplacement je suppose vue qu'il y'a que ça si il n'y à pas de joueurs)
De ce que j'ai pu remarquer, on a une moyenne de 2Mo ram par client connecté, et 2-5ko/s sur le reseau par client, pas de grosse variation sur le cpu ( j'suis d’ailleurs étonnamment surpris ! )
Pour les 2 MO c'est logique, deux thread/client ( un de lecture, un d'écriture ), je sais c'est pas ouf, mais c'est ce que j'ai reussi a mettre en place de plus simple, et d’entièrement fonctionnel sans bug dans la mesure de mes tests xD

Pour le nombre d'tilisateurs je sais pas, on va dire que si une fois publié on arrive à réunir une communauté de cent joueurs se serait déjà ... merveilleux ?
 
Inscrit
25 Novembre 2015
Messages
169
Reactions
20
#4
Ce que te propose Alexandre c'est de créer un programme qui automatise un comportement basique de connection/action en jeu qui va te permettre de réellement tester les performances , quand on développe une application serveur l'emprunte mémoire est moins importante que la vitesse de traitement mais ce qu'il faut garder à l'esprit c'est que ton application doit avoir les même performance qu'il y ai 100 ou 1000 joueur (on dit alors que ton application est scalable). Si par exemple tu t'es basé sur stump pour ton app server et que tu stock tes clients dans une List<T> que tu lock a chaque écriture sur la liste, je t'invite à regarder le coût d'un lock sur un enumerable qui contient + de 1000 éléments
 
Inscrit
15 Juin 2017
Messages
33
Reactions
0
#5
@Nameless ouai pour le bot de test j'vais faire ça prochainement pour voir ce que ça dit!
Je ne me suis pas base sur stump pour ce code là, parcontre j'ai en effet tendance a lock mes liste régulièrement, va falloir que je check tout ça.

Tu m'as appris un nouveau terme, scalable, ça ressemble au mouton doré a cinq pattes de là, mais je vois le but recherché, merci à toi
 
Inscrit
15 Juin 2017
Messages
33
Reactions
0
#6
So!
J'ai lance un petit bot, qui se connecte, et reste sur la map.
Avec 1000 comptes sur la même Map, le serveur n'a aucun problème, il identifie et ajoute les personnages sans problème, et Visiblement la seul limite de personnages sur la Map va être le nombre de port disponible sur ma carte réseau !
( 100 mo de RAM utilise au total, utilisation cpu proche du néant, et trafic reseré très faible malgres les messages de mouvement de créature envoyé toute les 3 secondes a l'ensemble des personnages de la Map ! )

@Nameless j'ai check pour le lock de clients, désormais je lock, recupere un client, delock, traite ses messages, et continue, ainsi plus de gros et long lock.

Merci pour vos conseils ;)
 
Haut Bas