Le défi est de savoir dans quelle mesure l'environnement du multi-serveur public de Minecraft Vanilla Continent peut être reproduit localement et optimisé autant que possible. Aucune autorisation n'a été obtenue de l'équipe de direction du continent Vanille. C'est un passe-temps personnel.
OS Windows10Home
java -jar -Xmx7168M -Dfile.encoding=utf-8 paperclip-605.jar
MariaDB pour la commodité d'utiliser XAMPP. Je ne sais pas si le continent Vanilla est MySQL ou MariaDB.
# mysql --version
mysql Ver 15.1 Distrib 10.1.38-MariaDB, for Win64 (AMD64)
Allocation de 7 Go Il semble que le continent Vanilla alloue 15 Go sur 32 Go (voir Wiki non officiel, anciennes informations et peut être différent maintenant), mais c'est la limite car mon PC n'a que 16 Go.
Eh bien, j'ai essayé des choses
Nom du plugin | version |
---|---|
CoreProtect | 2.16.3 |
dynmap | 3.0-beta-3-160 |
WorldEdit | 1.13.105 |
MorkazSk | 1.2 |
ColoredSigns | 2.2 |
Skript | 2.3.6 |
Essentials | 2.16.1.154 |
ClearLag | 3.0.3 |
ArmorStandEditor | 1.13-21 |
goBrush | 2.0 |
skDragon | 0.14.999 |
Chairs | 5.0 |
Test(PL auto-fabriqué pour vérification) | 1.0-SNAPSHOT |
SkQuery | 3.6.4 |
WorldBorder | 1.9.0 |
LWC | 2.1.2-dd8c289 |
Votifier | 1.9 |
ConsoleSpamFix | 1.6.2 |
PowerNBT | 0.8.9.3 |
Multiverse-Core | 3.0.0-SNAPSHOT-b760 |
WorldGuard | 7.0.0-beta-03;e51a220 |
SK-NBeeT | 2.3.0 |
Citizens | 2.0.25-SNAPSHOT (build 1669) |
Sentinel | 1.8.5 (build 242) |
FastAsyncWorldEdit | 1.13-breaking |
skRayFall | 1.9.15 |
LunaChat | 2.8.9 |
Skematic | 2.2b |
PermissionsEx | 1.23.4 |
skUtilities | 0.9.2 |
EssentialsSpawn | 2.16.1.154 |
UndineMailer | 1.8.1 |
WorldEditSelectionVisualizer | 1.6.5 |
SharpSK | 1.6.3 |
MCBans | 4.4.4 |
SkUniversal | 2.6 |
WarpPortals | 5.6.3 |
Skellett | 1.9.6b |
TuSKe | 1.8.2-Pikachu-IronApollo-Patch-4 |
(La liste ci-dessus a écrit le plug-in en une minute juste pour cela, car il est étonnamment ennuyeux de tabuler les versions installées.) De plus, Citizens a une version payante et une version gratuite, mais cette fois j'ai utilisé la version gratuite à des fins de vérification uniquement. (Il n'y a aucune différence de fonctionnalité. Pour maintenir la motivation, j'aimerais que vous utilisiez la version payante si possible.)
J'ai préparé l'environnement ci-dessus, je suis d'accord avec le CLUF et je l'ai démarré pour le moment. Puisque les MCBans, etc. sont inclus, je sais qu'il ne démarrera pas d'un seul coup. Pourtant…
ClearLag, un plug-in qui collecte les objets abandonnés et réduit le décalage en effaçant régulièrement les foules (qui est probablement désactivé sur le continent Vanilla), a craché des erreurs et n'a pas pu être lancé docilement. Est-ce que java.lang.IllegalArgumentException: Collection is empty
signifie que les éléments requis dans le fichier de configuration ne peuvent pas être lus?
→ Suite à son remplacement par la fourche suivante, elle a disparu avant que je ne le sache.
Aussi
Un plug-in d'édition NBT appelé PowerNBT a également généré une erreur avec une instruction appelée au démarrage.
Considérant java.lang.RuntimeException: no such method
et les sources ci-dessous, il semble qu'il ne parvient pas à accéder directement au programme serveur en utilisant la fonction appelée réflexion. Cette méthode n'est pas la méthode recommandée et doit être réécrite pour chaque mise à niveau de version, elle se produit donc lorsque le plug-in 1.12.2 est installé en 1.13.2. Ce plug-in semble avoir cessé de se mettre à jour dans la 1.12.1, il semble donc que cette erreur se produise.
À la suite de quelques recherches, on a découvert que le fork de ce plug-in semble supporter la version 1.13.2, je vais donc le remplacer ici.
Fourchette empruntée: https://github.com/steakteam/PowerNBT/releases
L'erreur Power NBT a maintenant disparu.
Le plug-in TuSKe ne semble pas être pris en charge par la famille principale, je l'ai donc remplacé par fork.
Fourchette empruntée: https://github.com/IronApollo/TuSKe/releases
Le résultat du travail ci-dessus Une fiche de portail appelée WarpPortals génère des erreurs (ignorées car il n'y a pas de problème pour collecter les statistiques de la fiche), mais il a été confirmé que les autres peuvent être démarrées sans problème. Cette fois, c'est l'environnement de reproduction.
Puisque la base de données n'est pas du tout utilisée dans l'état de démarrage mentionné ci-dessus, définissez-la aussi près que possible de l'environnement du continent vanille.
Modifié pour enregistrer CoreProtect et Modern LWC dans MariaDB. Dynmap prend également en charge MySQL (MariaDB), mais comme il n'y avait aucune preuve qu'il a été enregistré dans MySQL, il sera omis au stade de la reproduction.
En outre, il y a généralement 9 mondes, nethers, 5 mondes réinitialisés et mondes d'événements sur le continent Vanilla (à ma connaissance). Par conséquent, même dans cette vérification, seul le nombre de ces mondes sera préparé. (La génération mondiale est modérée car les spécifications du PC ne peuvent pas y résister.) (J'ai supprimé rimokko parce que je me suis souvenu plus tard que Rimokko était le nom mondial "monde")
Temps de démarrage: 1 minute 36 secondes Il est mesuré par la commande / memory d'Essential.
Je vais essayer d'optimiser diverses choses à partir de l'environnement de reproduction ci-dessus.
Mis à jour à 626
Le système Skript est réputé pour être lourd, il est donc supprimé et les fonctions implémentées dans ceux-ci sont implémentées par des plug-ins tels que Java / Kotlin pour réduire le poids.
Puisque le développement de PermissionEx est déjà terminé, on ne peut pas s'attendre à une optimisation future et ce n'est pas bon pour la sécurité, nous allons donc passer à LuckPerms.
Temps de démarrage: 1 minute 28 secondes La mémoire libre augmente à mesure que le nombre de plug-ins diminue.
MySQL consomme plus de mémoire, mais IO est plus rapide.
WarpPortals est un ancien plug-in, et bien qu'il ne fonctionne pas avec 1.13.2, il n'y a aucune garantie qu'il fonctionnera dans le futur, donc je pense que vous devriez envisager de le remplacer.
Puisque Skript décrit son contenu dans un fichier texte, IO prend du temps. En outre, plus il y a de plug-ins d'extension installés, plus la mémoire est consommée. Si vous souhaitez implémenter avec Skript et écrire un plug, le plug a un degré de liberté plus élevé tel que l'optimisation et vous pouvez faire beaucoup de choses, donc s'il n'y a pas de raison particulière pour Skript, il est préférable de l'implémenter avec un plug. Je pense (c'est mon avis. Si vous avez des objections ou des suggestions, laissez un commentaire). De plus, lors de l'implémentation d'une combinaison de plug-ins distribués, cela doit être pris en compte car cela ne changera pas si le nombre devient trop grand.
Cela fait environ un an et demi depuis la fin du développement, alors arrêtons-le.
Récemment, sur le continent Vanille, cela peut survenir plusieurs fois dans une journée, mais dans cette vérification, il n'a pas été possible de reproduire le maquereau car le temps de démarrage du serveur était court, donc les détails de la cause N'est pas connu. J'ai envisagé de le démarrer pendant longtemps et de le vérifier, mais je ne pouvais pas en raison de la commodité de transporter un PC.
Il existe un proxy inverse, qui peut réduire la charge sur le serveur ou servir de bouclier contre les attaques DDoS en intercalant un autre serveur entre le serveur et le lecteur. Sur le continent Vanilla, le DNS est désormais directement dirigé vers les serveurs, ce qui facilite le lancement d'attaques, donc je pense que vous devriez envisager de déployer un proxy inverse.
Étant donné qu'il dispose de 32 Go de mémoire, je pense que l'allocation de 15 Go donne trop de mémoire au système d'exploitation. Cela ne peut pas être aidé tant que le système d'exploitation est Windows, mais en changeant le système d'exploitation en Windows Server ou Linux (CentOS, etc.), la mémoire occupée par le système d'exploitation peut être réduite, la mémoire qui peut être allouée au serveur augmente et Linux est utilisé. Dans ce cas, vous pouvez obtenir des informations plus détaillées telles que l'utilisation de la mémoire et l'utilisation du processeur que Windows. S'il y a des gens qui peuvent gérer Linux, il vaut mieux utiliser Linux. (Priorité basse)
Pardonnez-moi pour la gestion du continent vanille, en particulier M. Tama, le propriétaire du Saba, et l'auteur, qui est un Sabamin, même s'il gère habituellement le serveur. Merci pour votre soutien continu dans la gestion des serveurs.
2019/5/28 Il a été souligné sur Twitter que ce serait trompeur, alors je l'ai révisé. Également clairement indiqué que c'est l'opinion de l'auteur.
Recommended Posts