All the Mods სერვერი დიდი მოდებიანი სერვერია რამდენიმე სპეციფიკური ჩვევით. ATM10 მუშაობს NeoForge-ზე Minecraft 1.21.1-ისთვის Java 21-ით და 400-ზე გაცილებით მეტი მოდით; ATM9 მუშაობს Forge-ზე 1.20.1-ისთვის Java 17-ით ან უფრო ახლით. ორივეს pack-ის CurseForge-ის გვერდზე აქვს server files zip გაშვების სკრიპტით, რომელიც loader-ს პირველი გაშვებისას აყენებს, და user_jvm_args.txt, რომელიც მეხსიერებას აყენებს - ATM10-ის server files აყენებს -Xmx8G-ს. ეს რეალისტური მინიმუმია: დაგეგმე 8 GB რამდენიმე მოთამაშისთვის და 10-დან 12 GB-მდე დატვირთული ჯგუფისთვის, ელოდე, რომ პირველ გაშვებას რამდენიმე წუთი დასჭირდება, შემდგომებს კი ორი-სამი, და ძალისხმევის უმეტესი ნაწილი დაუთმე იმას, რაც დიდ pack-ებს დროთა განმავლობაში ალაგებს - იძულებით ჩატვირთული chunk-ები, ავტომატიზებული ქარხნები და ფრენისას დაგენერირებული რელიეფი.
მოდებიანი სერვერის ზოგადი მასალა - Java-ს ვერსიები, crash რეპორტების წაკითხვა, მხოლოდ კლიენტის მოდები - არის მოდებიანი სერვერის გაშვებაში crash-ების გარეშე. ეს გზამკვლევი განიხილავს იმას, რაც ATM pack-ის გაშვებისთვისაა სპეციფიკური.
რომელი pack და რა სჭირდება#
All the Mods-ის გუნდი რამდენიმე pack-ს აქვეყნებს. ის, რასაც ხალხი ჩვეულებრივ გულისხმობს:
| pack | Minecraft | loader | Java | შენიშვნები |
|---|---|---|---|---|
| All the Mods 10 | 1.21.1 | NeoForge | 21 | მიმდინარე მთავარი pack |
| All the Mods 9 | 1.20.1 | Forge | 17+ | მომწიფებული, ძალიან დიდი, ბევრი სერვერი ჯერ კიდევ მასზეა |
| "To the Sky" ვარიანტები | განსხვავდება | განსხვავდება | განსხვავდება | skyblock ვერსიები; გენერაცია უფრო იაფია |
| ძველი (ATM8, ATM7) | 1.19.2 / 1.18.2 | Forge | 17 | ჯერ კიდევ თამაშობენ, აღარ არის ყურადღების ცენტრში |
loader-ის ზუსტ ვერსიას pack-ის თითოეული გამოშვება აფიქსირებს. გამოიყენე ის, რასაც server files აყენებს; NeoForge-ს ან Forge-ს pack-ისგან დამოუკიდებლად ნუ "განაახლებ".
pack ყველა განზომილებით დიდია: ასობით მოდი, გიგაბაიტზე მეტი server files და სამყარო, რომელიც სწრაფად იზრდება, რადგან pack განზომილებებს, სტრუქტურებსა და მადნების გენერაციას ამატებს. დისკის სივრცე vanilla-ზე მეტად მნიშვნელოვანია - ნახე ცხრილი ქვემოთ.
server files-ის სერვერზე გადატანა#
pack-ის CurseForge-ის გვერდზე ყოველ გამოშვებას ცალკე server files-ის ჩამოტვირთვა აქვს (მოძებნე ფაილის დამატებით ფაილებში, ჩვეულებრივ რაღაც ServerFiles-<version>.zip-ის მსგავსად დასახელებული). ნუ შეეცდები სერვერის აწყობას კლიენტის pack-იდან: server files-ში მხოლოდ კლიენტის მოდები ამოღებულია და გაშვების სკრიპტები ჩართულია.
- ჩამოტვირთე server files ზუსტად იმ pack-ის ვერსიისთვის, რომელსაც შენი მოთამაშეები გამოიყენებენ.
- გახსენი სერვერის root საქაღალდეში. მიიღებ
mods/-ს,config/-ს,defaultconfigs/-ს,kubejs/-ს და სხვა საქაღალდეებს, ასევეstartserver.sh-სა დაstartserver.bat-ს, დაuser_jvm_args.txt-ს. - გაუშვი
startserver.sh. პირველი გაშვებისას ის loader-სა და მის ბიბლიოთეკებს ჩამოტვირთავს და აყენებს, ნაგულისხმევserver.properties-ს წერს და სერვერს უშვებს. - მიიღე EULA, თუ მოგთხოვს (
eula=trueeula.txt-ში), და ხელახლა გაუშვი. - დაელოდე. პირველი გაშვება კონფიგურაციებსა და სამყაროს აგენერირებს და ნელია.
$ unzip ServerFiles-<version>.zip -d /srv/atm10$ cd /srv/atm10$ chmod +x startserver.sh$ ./startserver.shპანელზე იგივე ნაბიჯები ფაილ მენეჯერსა და კონსოლში ხდება: ატვირთე zip, ადგილზევე გახსენი და დააყენე გაშვების ცვლადები ისე, რომ სერვერმა დაყენებული loader გაუშვას და არა უბრალო სერვერის jar. დაყენებული loader საკუთარ გაშვების არგუმენტების ფაილს წერს (libraries/-ში), რომელსაც გაშვების სკრიპტი იყენებს; NeoForge სერვერის დაყენება ხსნის, როგორ ერგება ეს ფაილები ერთმანეთს.
მეხსიერება, CPU და დისკი#
ATM10-ის server files user_jvm_args.txt-ში აყენებს -Xms4G -Xmx8G-ს, და ეს იატაკია და არა კომფორტული რიცხვი. ამ pack-ების გაშვების გამოცდილებიდან:
| მოთამაშეები | heap (-Xmx) | კონტეინერი / გეგმა | CPU |
|---|---|---|---|
| 1-3, ახალი სამყარო | 8 GB | 10 GB | 2+ სწრაფი ბირთვი |
| 4-8 | 10 GB | 12 GB | 2.5-3 ბირთვი |
| 8-15, მომწიფებული სამყარო | 12 GB | 14 GB+ | 3.5+ ბირთვი |
სხვაობა heap-სა და კონტეინერის ლიმიტს შორის არასავალდებულო არ არის. Java მეხსიერებას heap-ის გარეთაც იყენებს - metaspace ასობით მოდის კლასისთვის, thread-ების სტეკები, direct buffer-ები - და ამ ზომის pack-ზე ეს დამატებითი ხარჯი გიგაბაიტი ან ორია. სერვერი, რომლის -Xmx მისი კონტეინერის ლიმიტის ტოლია, გარედან კვდება crash რეპორტის გარეშე, ჩვეულებრივ chunk-ების გენერაციისას. რამდენი RAM სჭირდება Minecraft სერვერს ამ არითმეტიკას ხსნის, ხოლო JVM flag-ები garbage collector-ის მხარეს განიხილავს.
RE:NODE-ის გეგმებზე ეს ნიშნავს 10 GB-იან დონეს პატარა ჯგუფისთვის 8 GB-იანი heap-ით, და 14 GB-იან დონეს დატვირთული სერვერისთვის 12 GB-იანი heap-ით. CPU დონესთან ერთად იზრდება, რაც აქ მეხსიერებასავით მნიშვნელოვანია - დიდი pack ერთი thread-ის tick-ის სიჩქარით იზღუდება გაცილებით ადრე, ვიდრე heap ამოეწურება.
დისკი:
- server files: დაახლოებით 1.3 GB გახსნილი, მეტი პირველი გაშვების შემდეგ, როცა ბიბლიოთეკები იქმნება.
- სამყარო: რამდენიმე GB კარგად შესწავლილი მომწიფებული სამყაროსთვის; გაცილებით მეტი, თუ მოთამაშეები დაფრინავენ და ყველა განზომილებაში რელიეფს აგენერირებენ.
- backup-ები: გაამრავლე სამყარო იმ რაოდენობაზე, რამდენსაც ინახავ.
ოცი გიგაბაიტი დიდხანს მცხოვრები ATM სერვერისთვის ვიწროა; მეტი დაგეგმე.
გაშვების დრო და watchdog#
დიდი pack სამყაროს გახსნამდე ყველა მოდს, ყველა რეცეპტსა და ყველა registry-ს ტვირთავს. პირველ გაშვებაზე რამდენიმე წუთი და შემდგომებზე ორი-სამი კარგ აპარატურაზე ნორმალურია.
server.properties-ში ორი პარამეტრი მნიშვნელოვანია დიდი pack-ებისთვის:
max-tick-time=180000allow-flight=truemax-tick-time vanilla-ს watchdog-ია: თუ ერთ tick-ს ამდენ მილიწამზე მეტი დასჭირდა, სერვერი თავს კლავს და thread dump-ს წერს. ნაგულისხმევი 60000 (ერთი წუთი) თამაშისას ჩვეულებრივ კარგია, მაგრამ დიდ pack-ზე მძიმე სამყაროს გენერაციისას ან დიდი ტელეპორტისას შეიძლება ამოქმედდეს. მისი სამ წუთამდე აწევა ნელ ოპერაციებს ადგილს აძლევს; -1-ის დაყენება watchdog-ს მთლიანად თიშავს, რაც ნიშნავს, რომ მართლა გაჭედილი სერვერი სამუდამოდ გაჭედილი დარჩება. ATM pack-ებს თავიანთ კონფიგურაციებში შეიძლება მოდის დონის watchdog-ის პარამეტრიც ჰქონდეთ.
allow-flight=true vanilla-ს უკრძალავს მოთამაშეების გაგდებას "ფრენისთვის", რასაც jetpack-ები, ფრენის ბეჭდები და creative-ფრენის ნივთები განუწყვეტლივ იწვევს. ყველა მოდებიან სერვერს სჭირდება. server.properties-ის ახსნაში ფაილის დანარჩენი ნაწილია.
chunk-ების ჩატვირთვა და რატომ ნელდება ATM სერვერები დროთა განმავლობაში#
ახალი ATM სამყარო კარგად მუშაობს. ექვსი კვირის შემდეგ იგივე სერვერი იმავე მოთამაშეებით ლაგავს. მიზეზი თითქმის ყოველთვის chunk-ების ჩატვირთვაა.
ATM pack-ები შეიცავს chunk-ების claim-სა და ჩატვირთვას, ჩვეულებრივ FTB Chunks-ისა და FTB Teams-ის მეშვეობით. მოთამაშეები თავიანთ ბაზას claim-ავენ და იძულებით ტვირთავენ, რომ მათი მანქანები offline-ში ყოფნისას იმუშაოს. ყოველი იძულებით ჩატვირთული chunk სამუდამოდ აკეთებს tick-ს - ყოველი მანქანა, ყოველი ფერმა, მილების ყოველი ქსელი - online არის ვინმე თუ არა. ოცი მოთამაშე, რომელთაგან თითოეული მანქანებით სავსე ცხრა chunk-იან ბაზას იძულებით ტვირთავს, არის სერვერი, რომელიც მუდმივად ოც ქარხანას ამუშავებს.
რა ქნა:
- დააწესე იძულებითი ჩატვირთვის ლიმიტი თითო მოთამაშეზე FTB Chunks-ის სერვერის კონფიგურაციაში - მცირე რიცხვები, მაგალითად ოთხიდან ცხრა chunk-მდე თითო მოთამაშეზე, დატვირთულ სერვერებზე ნორმალურია.
- პერიოდულად გადახედე იძულებით ჩატვირთულ chunk-ებს. მოთამაშეებს, რომლებიც წავიდნენ, ბაზები ჯერ კიდევ tick-ს აკეთებს.
- სთხოვე მშენებლებს, მანქანები კომპაქტურად შეინახონ. ორმოც chunk-ზე გაშლილი ბაზის იძულებით ჩატვირთვა ხელმისაწვდომ ფასად შეუძლებელია.
- ამჯობინე offline-ისადმი ტოლერანტული დიზაინები. ბევრ მანქანას შეუძლია იმუშაოს, სანამ მოთამაშეები online არიან, და საჭიროებისამებრ დაეწიოს, ნაცვლად იმისა, რომ მთელი ღამე tick-ს აკეთებდეს.
ნელი ზრდის მეორე ხარჯი იმ chunk-ების შიგთავსია. მომწიფებულ ATM სამყაროში მძიმე მოთამაშეები დიდი ავტომატიზებული კონფიგურაციებია: AE2-ის ქსელები ბევრი crafting CPU-თი და interface-ით, Mekanism-ის ქარხნები და digital miner-ები, მობების ფერმები grinding მოდებით და ნივთების მილები, რომლებიც დიდ მოცულობებს გადაადგილებს. ყველა მათგანი ლეგიტიმურია, ყველა tick-ებს ხარჯავს და ყველა spark-ის პროფაილში უნდა მოხვდეს, სანამ კამათში მოხვდება. spark-ის რეპორტის წაკითხვა NeoForge-ზე ისევე მუშაობს; spark ხშირად უკვე pack-შია.
სამყაროს წინასწარი გენერაცია#
რელიეფის გენერაცია ყველაზე ძვირი რამაა, რასაც მოდებიანი სერვერი აკეთებს, და ATM pack-ები ბევრს აგენერირებს: დამატებითი მადნები, მოდების სტრუქტურები, რამდენიმე დამატებითი განზომილება. მოთამაშეები, რომლებიც elytra-თი ან jetpack-ებით იკვლევენ, chunk-ებს უფრო სწრაფად აგენერირებენ, ვიდრე სერვერი კომფორტულად გაუმკლავდება, და მთელი სერვერი ფერხდება, სანამ ისინი ამას აკეთებენ.
წინასწარი გენერაცია ამ ხარჯს ისეთ დროზე გადაიტანს, როცა არავინ თამაშობს. Chunky-ს NeoForge-ისა და Forge-ის build-ები აქვს და ხშირად უკვე ჩართულია; თუ არა, დაამატე მხოლოდ სერვერზე (ის სერვერის მხარისაა).
/chunky world minecraft:overworld/chunky center 0 0/chunky radius 5000/chunky start5,000-ბლოკიან რადიუსს დიდ pack-ზე ბევრი საათი სჭირდება. გაუშვი ღამით, როცა online არავინაა, დააყენე შესაბამისი world border და გაიმეორე Nether-ისთვის და ნებისმიერი განზომილებისთვის, სადაც მოთამაშეები დროს ატარებენ. world border-ები და წინასწარი გენერაცია განიხილავს, რამდენ ხანს გრძელდება და რამდენად დიდდება ფაილები.
სამთო განზომილებები, რომლებიც გადატვირთვისთვისაა განკუთვნილი, დაუგენერირებელი დატოვე; ისინი დიზაინით დროებითია.
pack-ის განახლება სამყაროს დაკარგვის გარეშე#
ATM pack-ები ხშირად ახლდება, და განახლებები ძირითადად მოდების განახლებები და კონფიგურაციის ცვლილებებია და არა ახალი სამყაროები. უსაფრთხო პროცედურა:
- წაიკითხე changelog. მოძებნე წაშლილი მოდები - წაშლილი მოდის ბლოკები სამყაროდან ქრება - და შენიშვნები, რომლებიც ამბობს, რომ კონფიგურაციის საქაღალდე უნდა ჩანაცვლდეს.
- სუფთად გააჩერე სერვერი და სრული backup გააკეთე.
- ახალი server files-იდან ჩაანაცვლე
mods/,config/,defaultconfigs/,kubejs/და pack-ის ნებისმიერი სხვა საქაღალდე, რომელსაც გამოშვების შენიშვნები ახსენებს. ძველიmods/ჯერ წაშალე; მის თავზე ნუ დააკოპირებ, თორემ წაშლილი და გადარქმეული jar-ები დარჩება. - შეინახე
world/,server.properties,ops.json,whitelist.json,banned-players.jsonდა შენი საკუთარიuser_jvm_args.txt-ის მეხსიერების პარამეტრები. - თუ loader-ის ვერსია შეიცვალა, გაუშვი გაშვების სკრიპტი, რომ ახალი loader დააყენოს.
- გაუშვი, უყურე ლოგს, შედი და შეამოწმე მთავარი ბაზები, სანამ მოთამაშეებს ეტყვი.
თუ pack-ის კონფიგურაციები თავად შეცვალე, სია აწარმოე. config/-ის ჩანაცვლება შენს ცვლილებებს შლის; სია არის ის, რითაც მათ დააბრუნებ. რა ქნა, როცა მოდის განახლება აფუჭებს აღდგენის გეგმაა.
შეცდომები, რომლებსაც ATM სერვერები რეალურად აწყდება#
სერვერი პირველი გაშვებისას შეცდომის გარეშე ჩერდება. ლოგი ხაზის შუაში მთავრდება და crash რეპორტი არ არის. ეს თითქმის ყოველთვის პროცესის გარედან მოკვლაა მეხსიერების ლიმიტის გადაჭარბებისთვის, რადგან -Xmx მთელ გეგმაზე იყო დაყენებული. შეამცირე heap, რომ მარაგი დარჩეს.
"Mod rejections" ან დაკარგული მოდების სია მოთამაშეების შესვლისას. კლიენტი და სერვერი pack-ის სხვადასხვა ვერსიაზეა, ან მოთამაშემ დაამატა მოდი, რომელიც სერვერზეც უნდა იყოს. ჯერ ვერსიები შეადარე; შემთხვევების უმეტესობა launcher-ია, რომელმაც კლიენტი ავტომატურად განაახლა, სანამ სერვერი განახლდებოდა.
სერვერი ვარდება, როცა მოთამაშე კონკრეტულ ზონაში შედის. ამ chunk-ში block entity tick-ზე ვარდება. crash რეპორტი ბლოკსა და კოორდინატებს ასახელებს. ზოგიერთ pack-ს აქვს პარამეტრი, რომელიც შეცდომიან block entity-ებს crash-ის ნაცვლად შლის; სხვა შემთხვევაში აღადგინე region backup-იდან ან ბლოკი რედაქტორით მოაშორე. chunk-ების შეცდომები და სამყაროს დაზიანება ინსტრუმენტებს განიხილავს.
`Can't keep up!` გაფრთხილებები კვლევისას. chunk-ების გენერაცია ჩამორჩება. გააკეთე წინასწარი გენერაცია, შეამცირე view distance და შეზღუდე, რამდენად სწრაფად შეუძლიათ მოთამაშეებს ახალ რელიეფში მოძრაობა.
გაშვება ყოველ ჯერზე ერთსა და იმავე მოდზე იჭედება. ამ მოდის კონფიგურაციის ფაილი დაზიანებულია ან სხვა ვერსიიდანაა. გაიტანე ამ მოდის კონფიგურაცია config/-იდან და მიეცი ხელახლა დაგენერირების საშუალება. crash რეპორტების ახსნა გაჩვენებს, როგორ წაიკითხო, სად გაჩერდა.
RE:NODE-ზე Minecraft-ის ხაზი Paper-ით მოდის, ასე რომ ATM სერვერი შენი საკუთარი ინსტალაციაა: ერთი დაწკაპუნებით modpack-ის installer არ არსებობს და პანელზე არაფერი კითხულობს CurseForge-ის pack-ს. რაც გეხმარება, ისაა, რომ ფაილ მენეჯერი server files-ის zip-ს ადგილზევე ხსნის, კონსოლი გრძელ პირველ გაშვებას ფილტრის გარეშე აჩვენებს, ხოლო backup-ის სლოტები ყველა გეგმაზე ღილაკით აღდგება. თუ სერვერი მეხსიერების ლიმიტს მიაღწევს, ის ჩერდება და სუფთად გადაიტვირთება და swap-ში არ რჩება - სწორედ ამიტომ უნდა დატოვოს heap-მა ადგილი გეგმის ქვემოთ.
FAQ#
რამდენი RAM სჭირდება All the Mods 10 სერვერს?
მინიმუმ 8 GB heap, რასაც server files აყენებს, გეგმის შიგნით, რომელსაც ამაზე გიგაბაიტით ან ორით მეტი აქვს. რამდენიმე მოთამაშეზე მეტისთვის ან მომწიფებული სამყაროსთვის 10-დან 12 GB-მდე heap უფრო კომფორტულია.
რატომ სჭირდება ჩემს ATM სერვერს გაშვებისთვის ამდენი დრო?
ის სამყაროს გახსნამდე ასობით მოდს, ყველა რეცეპტსა და ყველა registry-ს ტვირთავს. პირველ გაშვებაზე რამდენიმე წუთი და შემდეგ ორი-სამი ნორმალურია. გაშვება, რომელსაც ჩვეულებრივზე გაცილებით მეტი დრო სჭირდება, ხშირად ქსელის შემოწმებაზე გაჭედილი მოდი ან დაზიანებული კონფიგურაციაა; ლოგი აჩვენებს, სად გაჩერდა.
შემიძლია მოდების დამატება All the Mods სერვერზე?
კი, თუ მოთამაშეები იმავე მოდებს დაამატებენ ყველაფრისთვის, რასაც ბლოკები, ნივთები ან entity-ები აქვს. მხოლოდ სერვერის მოდებს, როგორიცაა Chunky, კლიენტზე არაფერი სჭირდება. მოდების დამატება ნიშნავს, რომ შენი სერვერი სტანდარტულ pack-ს აღარ ემთხვევა, ამიტომ განახლებებისთვის სია აწარმოე.
რატომ ნელდება ჩემი სერვერი ყოველ კვირას?
ჩვეულებრივ იძულებით ჩატვირთული chunk-ებისა და მზარდი ქარხნების გამო. ყოველი claim-ილი და იძულებით ჩატვირთული ბაზა სულ tick-ს აკეთებს. შეზღუდე იძულებითი ჩატვირთვა თითო მოთამაშეზე, გადახედე ძველ claim-ებს და spark-ით გააკეთე პროფაილი, რომ იპოვო ქარხანა, რომელიც ყველაზე მეტ სამუშაოს აკეთებს.
მჭირდება თუ არა სამყაროს წინასწარი გენერაცია?
მკაცრად რეკომენდებულია. დიდ pack-ზე რელიეფის გენერაცია ძვირია და ყველასთვის ფერხებას იწვევს, სანამ მოთამაშეები იკვლევენ. ღამით spawn-ის გარშემო რამდენიმე ათასი ბლოკი წინასწარ დააგენერირე და შესაბამისი world border დააყენე.




კომენტარები
სრულიად ანონიმურად: ანგარიშის, ელფოსტის და cookie-ის გარეშე. ინახება მხოლოდ სახელი, ტექსტი და დრო - სხვა არაფერი. ბმულების რაოდენობა ლიმიტირებულია.