Jump to content

Recommended Posts

Posted

Πολυσυζητημένη η επιλογή αξιοπιστίας L2j, L2off

 

Δεν τίθεται καν συγκριση l2j και L2off οσον αφορα τα αρχεία, γιατί ολα binary files καταλήγουν στον δίσκο.

Η σύνγκριση μετατίθεται στην διαχείρηση των βάσεων δεδομένων, δηλαδή αν ο SQL είναι καλύτερος από τον MySQL και η C++ καλύτερη από την Java. Ναι ο SQL ειναι καλυτερος απο τον mySQL σε μερικα σημεία, υστερεί όμως στο κόστος και στον αριθμό εφαρμογών.

Η αξιοπιστία ειναι ακριβώς η ίδια για τον απλό λόγο: Οποια βαση δεδομένων και αν χρησιμοποιήσεις καταλήγει σε AsciiFiles (binary format) στον δίσκο.

Αν χτυπά μια βαση περισσοτερο από την άλλη είναι θεμα διαχείρισης της εφαρμογής...

 

L2 java vs c++ ... φυσικα c++. Αλλα στην προκείμενη χρήση μικρή η διαφορά:

1. Δεν διαχειριζόμαστε DX

2. Ολα τα c++ script ειναι πλεον συμβατα με java

3. Διπλάσιος χρονος ανάπτυξης στην c

4. Ο l2j ειναι ποιο ανανανεωμένος

5. Αρχίζουμε να μιλάμε για απόδοση μετα τους 1k users

 

Τι καταναλώνουν οι σερβερ μας σε μνημη και internet γραμμή?

-Xms512m & -Xmx1024m αντιπροσωπεύουν τα Runtime.maxMemory()  kai Runtime.totalMemory() δηλαδή

X =  Runtime.totalMemory() - Runtime.freeMemory() = η μνημη που τρώει ο σερβερ σου /1024 (περιέχεται και ο σκουπιδιάρης)

εαν X > Runtime.maxMemory() τοτε HeapDumpOnOutOfMemoryError (-Xms512m  -Xmx1024m)

 

Πρακτικα ο X ειναι το page memory στο συστημά σου ... π.χ. cntrl + del > performance > memory

με το -vmargs πρακτικα περνας απευθείας στην μνήμη JVM της java και me to -Xmx512M ορίζεις το page ή σωρό ή χώρο διάθεσης (οπως θελεις πεστο) για την εφαρμογή σου.

Συνήθως η παράληψη των περισσοτέρων ειναι εδώ. To 512 ειναι για 1024mb ram system.

Αν εισαι με winXP 32bit system (max 3gb ram) στα 2.5gb οφέλημο, με 64bit system εχεις ισως 8gb οπότε 4096 ειναι μια χαρά.

Αυτο το ορίζεις αφού πρώτα κανεις εναν προχειρο υπολογισμό καταναλώσεων μνήμης.

Γιατι λεμε ο sql ή ο mySql να ειναι dedicated? Γιατι αν εχεις αρκετή ram την τραβανε όλη στο start-up και αν καταφέρουν να χωρέσουν ολα τα δεδομένα, κατα την διάρκεια της λειτουργίας δεν τρώνε ουτε 1mb επιπλέον.

Στις βασεις δεδομένων για L2 servers αυτό επιτυγχάνεται εύκολα γιατί τα δεδομένα ειναι πολύ λίγα σε αριθμό.

 

Ο κάθε player λοιπον που μπαίνει δεν τρώει τιποτε απο ram δεδομενων sql. Τα 4096 που δινεις στην διάθεση της ram λειτουργίας

για την java, JVM για την εφαρμογή του L2 server από τα 8gb που εχεις αρκούν.

 

Παραδειγμα σε  win7 64bit, mySQL 64bit, JDE 64bit me loginserver+gameserver+geodata+pathnodes ολα στην ram ~= 2.2Gb (χωρίς players).

Και χονδρικα υπολόγησε 2.7mb για κα8ε νεο παιχτη στη ram sql + ram online > 4096 / 2.7 = 1517 players που ειναι αραχτοί

4096 / 5.6 = 700 players που παίζουν... τα αλλα 4096 μνημης αν τα αφησουμε για τον σκουπιδιάρη ειμαστε τελειοι. Αργός ο σκουπιδιάρης αλλα χρήσιμος και ειδικότερα με 4gb

Αλλα για 1517 online θελεις 106mbps internet line.

 

Εδω μπαινει στο παιχνιδι και ο επεξεργαστής...

Ολες οι official εγκαταστασεις χωρίζουν τους παίκτες σε διαφορετικούς servers αναλογα με την περιοχή, αυτο το κανουν με τα instance ή με απομονωμένες ζωνες.

To L2 o μοναδικός server που παίζει 1game-1map  γιαυτο και lagarei... ειδικα στα siege ακομα και o official. To καλύτερο είναι ανα 1000 players αλλος server αλλα για ολους 1 chat server.

 

Υπολογισμοί μεγεθών:

login server = 64mb

game server = 256mb

geodata = 512mb

pathnodes = 256mb

system winexp, 2003 light = 315mb

αυτα με 32bit system ολα (4gb θελουν system x64bit)

αν εχετε 4gb ram tote ta upoloipa 2.5gb /(256kacc + 128kbuffer + 64kpriority)~= 600 atoma

 

αλλα για 600 ατομα ~= 7.2k * 9 * 600 = 38,880 kbps

γραμμή για 600 ατομα σε siege ~= 16k * 9 * 600 = 86,040 kbps

 

adsl 24mbps με πληρες upload στα 1024 σηκωνει εκτος siege ~90 atoma

adsl 24mbps με πληρες upload στα 1024 σηκωνει σε siege ~50 atoma

αλλα ποιος εχει 24mbps στην Ελλάδα με περισσοτερα από 800kbps upload?

 

σε 64bit system win7 me 64bit mysql και 64bit JDE χρειάζεστε ram + 1 gb για τα ίδια αλλα 30% λιγότερο cpu.

 

σαν αποτέλεσμα το lag ερχεται αν εχουμε 4gb ram και 500 παιχτες

70% απο την γραμμή

25% απο τον cpu

5% από την ram

με την προυπόθεση οτι ο server ειναι dedicated και o mysql επίσης dedicated.

 

  • 2 weeks later...
  • 1 month later...
Posted

Ας πουμε πως εχουμε εγκαταστησει τον mySql στο pc μας.

Τρεχουμε το mySql insatance Config Wizard...

 

φτανεις στο σημειο που πρεπει να ορισεις τον τυπο του server... του PC σου, δηλαδη πως το χρησημοποιείς..

 

1. Developer Machine

   Ειναι μονο για προγραμματισμο και δοκιμες, τρεχουμε και αλλα προγραμματα και γραφουμε και δοκιμαζουμε κωδικες.

 

2. Server Machine

   Ειναι ενας κανονικός server αλλα τρεχουμε και άλλα, οπως mail server, dns server κλπ. Προτεινεται για web servers.

 

3. Dedicated mySql Server Machine

   Τρεχουμε μονο mySql βαση και της δινουμε πλήρη διαχείριση μνήμης ... τιποτε μα τιποτε αλλο εκτος από l2 login-game-community server.

 

σε αυτη την λειτουργία σε 64bit o mySQL τα σπαει πραγματικά... ειναι σφαιρα :)

ελαχιστη προτεινομενη ram 4Gb

Posted

Ακριβώς όπως το λέει ο Astald, επιλέξτε dedicated mysql, διότι απ'ότι θυμάμαι το 99% των guides προτείνει server machine σε αυτό το σημείο και εκεί την πατάτε.

Posted

Na sas proteino kai ego kati ? Asxolitheite kalitera me to pos na kanete tous server sas na parousiazoun endiaferon mpas kai piasoun kanan paikth. Giati ti na to kano to optimization otan o server einai adios ? Astald mpas kai eisai apo to l2dc ? Giati mono ekei kanoun optimize se servers me 20 players online ( plin elaxisotn eksereseon ). Katheste kai asxoliste me saxlamares. Ftaste prota 2000 player kai meta asxolitheite me optimization.

 

Friendly tip.

 

What is worse? To know and not talk or talk and not knowing?

 

Kai gia na sou apantiso stin ipografi sou: " To know and to talk, about things without meaning."

Posted

lelucghe ποιο ειναι το προβλημα σου?

server με 2000 ατομα προυποθετει καλο server? Για δωσε μας ενα παραδειγμα...

Και την ουσια των πραγματων δεν θα την κρινει ενας επιφανειακός τυπος, θα την αποφασισουν οι αναγκες της καθημερινοτητας αυτων που πασχιζουν να συντηρησουν ενα server (ειδικα χωρις donates)

Αν θελεις να γραφεις απλα για να γραφεις παρε ενα ντεφτερι και ενα κονδυλοφορο ή μπες στο facebook και ασε εμας να ασχολουμαστε με ανουσια πράγματα... στο κατω-κατω ετσι γουσταρουμε και αν σου αρεσει...

 

δεν ειμαι απο το l2dc καλε μου ανθρωπε... από το L2j dev ειμαι Tr@c3R

που σημαινει οτι μπορει να κανουμε optimize και σε server χωρις κανενα άτομο...

 

Οσο για την υπογραφή, ποιος είσαι εσυ που θα την κρινεις? Αιιιι χασου μικρο μιρμιγκάκι...

 

 

ΥΓ ολα τα post που κανουμε και τα share ειναι δικια μας δουλεια... δεν 'πασαρουμε' δουλειες άλλων :)

Posted

1) Gia pio logo na kaneis optimize ena software otan den xriazete ? Skopeyeis na to pouliseis se kapion megalo server pou to xriazete ? I exeis toso sigouro oti server xoris features tha piasei 2000 atoma ? Giati ayto einai to problima me ton server sou, einai unatractive. Ftiakse prota ayta pou theloun oi pektes, mazepse tous pektes, kai otan to mixanima arxizei na gonatizei apo memory leaks kai I/O bottlnecks, ksekina to optimize. Giati an ontos eisai programmatistis pou kapou aneferes, sigoura tha ksereis oti prota grafoume to logismiko, kai meta asxoloumaste me optimize.

 

2) Pios pasare douleia alou ?

Posted

Ελα παππου μου να σου δειξω τα αμπελοχωραφά σου...

Η Ελληνική γλωσσα εχει πανεμορφες λεξεις, οπως 'ελκυστικός' και καλο ειναι να γνωριζεις οτι το 'ανελκυστικός' δεν ειναι το αντιθετο του ελκυστικός... το αντιθετο του ειναι αδιάφορος ή 'indifferent'.

Leluche δεν γνωριζω το επιτίδευμά σου, αλλα πιστευω πως η ταση να καταχαρακωνεις ή να σατυριζεις τα λεγομενα ή τα ενδιαφεροντα των αλλων έιναι μια κινηση που ανήκει περισσοτερο στον χωρο του θεάματος παρα στον χωρο της αναπτυξης.

Η επιγραφη του διαμερισματος γραφει "[General] Lineage II Develop [L2J] Greek »".

Επισης δινεις την εντυπωση πως εχεις το χαρακτηριστικο του ανθρωπου που δεν ακουει, αλλα λεει αυτα που εχει να πει και περα βρεχει...

Θα σου το αναφερω ακομη μια φορα πως μου ειναι λιγο αδιαφορος ο αριθμος των παικτων στον server μου, εκεινο που με ενδιαφερει είναι η αναπτυξη και οι διορθωσεις. Τον server τον εστησα επειδη το ήθελαν οι 3 γιοι μου. Και φυσικα δεν γνωριζεις τι server ειναι, τι καλουδια εχει και τι εχει υπο αναπτυξη (ουσιαστικα αν ηξερες θα συζητούσαμε για αυτα).

 

Η ρυθμιση του mySql ειναι βελτιστοποίηση? Τοτε το πως βαζουμε κετσαπ σε ενα hot dog ειναι εφευρεση.... χαχα

Καλο θα ηταν αν συμμετειχες εχοντας αποψη στο αναφερομενο θεμα του post που ανοιξα ή αν δεν γνωριζεις, καλα θα κανεις να μαθεις μερικα πραγματα που μπορουν να σου φανουν χρήσιμα και να σχολιάσεις την αποδοσή τους.

Αν η βελτιστοποίηση δεν χρειάζεται γιατι ολοι οι σοβαροί κατασκευαστες στον κοσμο του software έχουν beta εκδοσεις και test servers? Ολοι αυτο δεν κανουν? γραφουν ενα software και το δινουν για δοκιμη αναμενοντας παρατηρησεις για να προβουν σε βελτιστοποίηση...

Πραγματικα εχω βαρεθει στην καθημερινοτητα μου να ακουω ασχετους, να εχουν αποψη και σχετικούς να ειναι αδιάφοροι...

Και αυτο που συνεχως αναφερω στους μαθητες μου είναι...

Προγραμματιστής καλος δεν ειναι αυτος που γραφει κωδικα ευκολα, αλλα αυτος που γνωριζει παρα πολυ καλα για ποιο λογο γραφει αυτον τον κωδικα, διαφορετικα εισαι δακτυλογράφος.

 

και θα σου θεσω και το ερωτημα που σατυρισες ως 'σατΥρος'...

What is worse? To know and not talk or talk and not knowing?

Posted

Καταρχάς, το θέμα της βελτιστοποίησης τίθεται από τους κατασκευαστές όταν έχουν κάτι να βελτιστοποιήσουν. Στην περίπτωσή μας δεν υπάρχει καν προϊόν. Σε default l2j, δεν κάνεις βελτιστοποίηση για τον απλό λόγο ότι υπάρχουν άλλες προτεραιότητες.  Επίσης ας γνωρίζει ο καθένας την θέση του. Η είσαι l2j developer  ή είσαι server owner.  O developer ασχολείται πρώτιστος με θέματα κώδικα γιατί απλά δεν τον ενδιαφέρει κάτι άλλο, ο server owner όμως έχει ως στόχο την επιτυχία του server.  Και η επιτυχία του server έχει πολύ πιο σημαντικές παραμέτρους από το να εντοπίσεις μερικά memory leaks ή να έχεις ταχύτερο κώδικα και λιγότερα I/O.

 

Αυτός που είναι εκτός τόπου και χρόνου είσαι εσύ, ανεξαρτήτως των γνώσεων σου, γιατί πολύ απλά, κανείς σχεδόν εδώ δεν γνωρίζει τα θέματα που πάς να πιάσεις, και ούτε ενδιαφέρεται καν να τα μάθει, γιατί πολύ απλά είναι όλοι 15-χρονοι Έλληνες που δεν έχουν ιδέα από προγραμματισμό και το μόνο που θέλουν είναι να έχει ο server τους τα hot features χωρίς να κοπιάσουν.

 

Μια παρατήρηση από μαθητή προς δάσκαλο :

Δάσκαλε σε λάθος αίθουσα μπήκες να διδάξεις :)

 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...