RE:NODE

ექსპლუატაცია11 წუთის საკითხავი

თამაშის სერვერის დისკი გაივსო: რა წაშალო

რა ავსებს თამაშის სერვერის დისკს - ლოგები, ლოკალური backup-ები, crash dump-ები, რუკის tile-ები, Workshop-ის cache - როგორ იპოვო დიდი საქაღალდეები და რისი წაშლაა უსაფრთხო.

0 მკითხველი

როცა თამაშის სერვერის დისკი ივსება, მიზეზი თითქმის არასოდეს სამყაროა. ეს ის რამეებია, რომლებიც მის გვერდით იზრდება ისე, რომ არავინ უყურებს: ლოგ ფაილები, რომლებიც არასოდეს იშლება, თამაშის საკუთარი ლოკალური backup-ები, crash dump-ები, რუკის რენდერერის tile-ები, Workshop-ის ჩამოტვირთვების cache და ძველი სამყაროები, რომელთა შექმნაც არავის ახსოვს. რომელია, ამის პოვნას ერთი წუთი სჭირდება - ჩამოთვალე საქაღალდეები ზომის მიხედვით და შეხედე პირველ სამეულს - გასუფთავება კი ჩვეულებრივ რამდენიმე წაშლა და ერთი შეცვლილი პარამეტრია, რომ აღარ განმეორდეს. სასწრაფო ნაწილი ის არის, რომ ეს შემდეგ შენახვამდე გააკეთო, რადგან თამაშმა, რომელიც სამყაროს ვერ წერს, შეიძლება კარგი save-ის ადგილას ნულბაიტიანი ფაილი დატოვოს.

ეს პოსტი განიხილავს სიმპტომებს, როგორ იპოვო, რა იკავებს ადგილს shell-ით და მის გარეშე, ჩვეულებრივ დამნაშავეებს თამაში თამაშზე, რისი წაშლაა უსაფრთხო და რისი არა, და როგორ შეაჩერო დისკის ხელახლა გავსება. თავიდანვე რამდენი დისკი იყიდო, ზომის საკითხია, განხილული სტატიაში რამდენი საცავი სჭირდება თამაშის სერვერს.

როგორ გამოიყურება სავსე დისკი#

სავსე დისკი თავს იშვიათად აცხადებს. თამაში მეხსიერებიდან აგრძელებს მუშაობას და მხოლოდ მაშინ ვარდება, როცა ჩაწერას ცდილობს, ამიტომ სიმპტომები უცნაურ ადგილებში ჩნდება:

  • შენახვები ვერ ხერხდება. No space left on device, IOException, Failed to save ან ENOSPC კონსოლში, ხშირად ყოველ autosave-ზე განმეორებით.
  • სამყარო უკან ბრუნდება. მოთამაშეები შედიან და ხედავენ, რომ პროგრესი გამქრალია საათების ან დღეების წინანდელი მომენტიდან - ბოლო წარმატებული შენახვიდან.
  • სერვერი არ ირთვება. ბევრი თამაში ჩართვისას lock ფაილს ან ლოგს წერს და კვდება, თუ ვერ ახერხებს. Pterodactyl-ის Wings ასევე ამოწმებს დისკის კვოტას სერვერის ჩართვამდე და უარს ამბობს მის ჩართვაზე, თუ ის კვოტას გადააჭარბებს.
  • განახლებები ვერ ხერხდება. SteamCMD აცნობებს შეცდომებს, როგორიცაა state is 0x202 after update job, და სერვერი ძველ ვერსიაზე ან დაკარგული ფაილებით ირთვება.
  • ატვირთვები შუაში ჩერდება. ფაილების მენეჯერი ან SFTP კლიენტი ჩავარდნას აცნობებს და ნახევრად ჩაწერილი ფაილი რჩება.
  • backup-ები ვერ ხერხდება ან ცარიელი გამოდის. backup სადმე უნდა აეწყოს, სანამ გაიგზავნება.

პანელზე დისკის გამოყენების მაჩვენებელი და გრაფიკი კონსოლის გვერდით აჩვენებს, რამდენად ახლოს ხარ გეგმის ლიმიტთან. 80% ჩათვალე ზღვრად, სადაც ასუფთავებ, და არა 100%.

როგორ იპოვო, რა იკავებს ადგილს#

მეთოდი ყველგან ერთია: ჩამოთვალე ზედა დონის საქაღალდეები ზომის მიხედვით, შედი ყველაზე დიდში, გაიმეორე, სანამ არ იპოვი რამეს, რაც ასეთი დიდი არ უნდა იყოს.

shell-ით - შენი მანქანა, VDS ან თამაშის სერვერი, სადაც SSH გაქვს:

bash
# biggest items in the current folder, largest last$ du -sh -- * .[!.]* 2>/dev/null | sort -h | tail -15# the 20 largest files anywhere below here$ find . -type f -printf '%s\t%p\n' | sort -n | tail -20 | numfmt --field=1 --to=iec# everything over 500 MB$ find . -type f -size +500M -exec ls -lh {} +# how much is used and free on the volume$ df -h .

.[!.]* იჭერს დამალულ საქაღალდეებს, სადაც ზოგიერთი ყველაზე ცუდი დამნაშავე ცხოვრობს: .steam, .cache, .local/share. მათი დავიწყების გამო ასკვნის ხალხი, რომ დისკი არაფრით არის სავსე.

shell-ის გარეშე, რაც თამაშის პანელზე ჩვეულებრივი სიტუაციაა, ფაილების მენეჯერი ან SFTP კლიენტი იმავე საქმეს უფრო ნელა აკეთებს. WinSCP-სა და FileZilla-ს შეუძლიათ საქაღალდეების ზომის ჩვენება, ხოლო WinSCP-ის "Calculate" საქაღალდეზე მას აჯამებს. იმოძრავე root-იდან ქვემოთ: სერვერის საქაღალდე, შემდეგ save-ის საქაღალდე, შემდეგ ის ქვესაქაღალდე, რომელიც ყველაზე დიდია. SFTP და ფაილების მენეჯერი დაკავშირებას აღწერს.

ჩვეულებრივი დამნაშავეები#

დაახლოებით იმ თანმიმდევრობით, რამდენად ხშირად აღმოჩნდებიან პასუხი:

დამნაშავესადრა ზომამდე იზრდება
ძველი ლოგ ფაილებიlogs/, profile საქაღალდეები, Saved/Logs/ასობით MB-დან ათეულობით GB-მდე
თამაშის საკუთარი ლოკალური backup-ებისამყაროს გვერდითთითოეული სამყაროს სრული ასლი, გამრავლებული რაოდენობაზე
crash dump-ებიroot, Saved/Crashes/, profile საქაღალდეებითითოეული 100 MB-დან რამდენიმე GB-მდე
რუკის რენდერერის tile-ებიplugins/dynmap/web/tiles/, bluemap/web/maps/ხშირად სამყაროზე დიდი
Workshop-ისა და ჩამოტვირთვების cachesteamapps/workshop/, .steam/, .cache/რამდენიმე GB mod-ებიან სერვერებზე
მიტოვებული სამყაროებიდამატებითი სამყაროს საქაღალდეები, საცდელი save-ებითითოეული სრული სამყარო
წინასწარ გენერირებული chunk-ებიMinecraft-ის region ფაილებისაზღვრის კვადრატთან ერთად იზრდება
ატვირთული, არასოდეს წაშლილი არქივები.zip ან .tar.gz root-შირაც ატვირთეს, იმის ზომა

ლოგები

ლოგები პირველი ეჭვმიტანილია, რადგან ბევრ თამაშში ნაგულისხმევად მათ არაფერი შლის. DayZ და Arma 3 ყოველ გაშვებაზე ახალ .RPT-ს იწყებს და ყველას ინახავს; 7 Days to Die-ის სტანდარტული გაშვების სკრიპტი ყოველ გაშვებაზე ახალ თარიღიან ლოგს წერს; Minecraft ძველ ლოგებს კუმშავს და განუსაზღვრელი დროით ინახავს, თუ სხვაგვარად არ არის კონფიგურირებული. სერვერი, რომელიც ყოველ ღამე გადაიტვირთება და დეტალურად წერს ლოგს, თვეში გიგაბაიტებს აწარმოებს. სად არის ისინი თითო თამაშზე, მოცემულია სტატიაში თამაშის სერვერის ლოგების ახსნა.

ლოკალური backup-ები

რამდენიმე თამაში და plugin backup-ებს სამყაროს იმავე საქაღალდეში აკეთებს. Valheim ინახავს -backups ასლებს, ნაგულისხმევად ოთხს; Minecraft-ის backup plugin-ები zip ფაილებს სერვერის შიგნით არსებულ საქაღალდეში წერს; Unreal-ზე დაფუძნებული თამაშები ხშირად save-ის რამდენიმე თაობას ინახავს. თითოეული სამყაროს სრული ასლია. ისინი სასარგებლოა დაზიანებული save-ის წინააღმდეგ, უსარგებლოა დაკარგული სერვერის წინააღმდეგ და დისკის გავსების გავრცელებული მიზეზია: plugin-ს, რომელიც 5 GB სამყაროს 30 ყოველდღიურ ასლს ინახავს, 150 GB სჭირდება.

crash dump-ები

JVM-ის ავარია ტოვებს hs_err_pid*.log-ს (პატარას) და, თუ კონფიგურირებულია, heap dump-ს (.hprof) heap-ის ზომისას - 8 GB heap 8 GB ფაილია. Unreal-ის თამაშები ყოველ ავარიაზე საქაღალდეს ინახავს Saved/Crashes/-ში. Linux-ის core dump-ები (core ან core.<pid>) native ავარიებიდან შეიძლება პროცესის მეხსიერების ტოლი იყოს. ერთ crash loop-ს შეუძლია მათი ათეულები დატოვოს.

რუკის რენდერერები

Dynmap, BlueMap და squaremap სამყაროს ვებ-რუკისთვის გამოსახულების tile-ებად არენდერებს. დიდი, გამოკვლეული სამყარო, რენდერირებული რამდენიმე მასშტაბის დონეზე, ჩვეულებრივ თავად სამყაროზე მეტ მონაცემს აწარმოებს, და Dynmap-ის tile-ების რაოდენობა დიდ სერვერზე მილიონებს აღწევს. თუ tile-ები მონაცემთა ბაზაში კი არა, დისკზე ინახება, ისინი ხშირად ყველაზე დიდი საქაღალდეა. ვებ-რუკები Dynmap-ითა და BlueMap-ით განიხილავს შენახვის ვარიანტებს და რენდერის პარამეტრებს.

Workshop-ისა და Steam-ის cache

SteamCMD Workshop-ის კონტენტს ჩამოტვირთავს steamapps/workshop/content/<appid>/-ში, ზოგი თამაში კი შემდეგ მას საკუთარ mod-ების საქაღალდეში აკოპირებს - ასე რომ ყოველი mod-ი ორჯერ არსებობს. Garry's Mod-ს, Arma 3-ს, DayZ-ს, Project Zomboid-სა და Unturned-ს ამის ვარიაციები აქვთ. სერვერის სიიდან ამოღებული mod-ები cache-დან ხშირად არ იშლება. SteamCMD ასევე ინახავს პაკეტებისა და ჩამოტვირთვის დროებით ფაილებს საკუთარ საქაღალდეში.

რისი წაშლაა უსაფრთხო#

წესი: წაშალე ის, რისი თავიდან შექმნაც თამაშს შეუძლია ან რასაც არ კითხულობს, არასოდეს ის, რაც მდგომარეობას ინახავს, და არასოდეს რამე, სანამ სერვერი მასში წერს.

უსაფრთხოდ წასაშლელი (სერვერი გაჩერებულია)ფრთხილად წასაშლელიbackup-ის გარეშე არასოდეს წაშალო
ძველი ლოგ ფაილები, შეკუმშული ლოგებიWorkshop-ის cache ჯერ კიდევ გამოყენებადი mod-ებისთვისსამყაროსა და save-ის საქაღალდეები
crash dump-ები და core ფაილებითამაშის ლოკალური backup-ებიმოთამაშეების მონაცემები და ანგარიშების ბაზები
hs_err_pid*.log, .hprof heap dump-ებირუკის tile-ები (თავიდან რენდერდება, ნელა)კონფიგ ფაილები, რომლებიც შეცვალე
უკვე გახსნილი ატვირთული არქივებიძველი სამყაროები, რომლებიც გგონია, რომ არ გამოიყენებაplugin-ების მონაცემების საქაღალდეები
აღარ გამოყენებული mod-ების ჩამოტვირთვების cacheregion ფაილები საზღვრის გარეთბანების, ადმინებისა და whitelist-ის ფაილები

"ფრთხილად წასაშლელი" ნიშნავს, რომ შესაძლებელია თავიდან შექმნა ან ჩანაცვლება, მაგრამ ფასად: Workshop-ის 10 GB კონტენტის ხელახლა ჩამოტვირთვა, რუკის მთელი დღის განმავლობაში ხელახლა რენდერი ან სამყაროს ერთადერთი ასლის დაკარგვა, რომელსაც ვიღაც მოგვიანებისთვის ინახავდა. თუ რაიმე ეჭვი გაქვს, ჯერ ჩამოტვირთე.

ლოგებისთვის ყველაფრის სამუდამოდ შენახვის მიზეზი არ არსებობს. გონივრული წესია ჩვეულებრივი ლოგების ერთი-ორი კვირა და უფრო მეტი ადმინისა და ჩატის ლოგებისთვის, რომლებიც მოდერაციაში გამოიყენება. შენს სერვერზე:

bash
# remove compressed Minecraft logs older than 14 days$ find logs/ -name '*.log.gz' -mtime +14 -delete# remove DayZ RPT files older than 7 days from the profiles folder$ find profiles/ -name '*.RPT' -mtime +7 -delete# remove crash dumps$ find . -name 'hs_err_pid*.log' -o -name 'core.*' | xargs -r rm -v

თითოეული ჯერ -delete-ის ნაცვლად -print-ით გაუშვი და სია წაიკითხე, სანამ შეასრულებ. find ... -delete გზაში შეცდომით - ასე ქრება სამყაროები.

როგორ შეაჩერო ხელახლა გავსება#

ერთჯერადი გასუფთავება დროს გაძლევს. ეს ცვლილებები ციკლს აჩერებს:

  • ლოგების ავტომატური როტაცია. პანელზე განრიგს ფაილების წაშლა თავისით არ შეუძლია, მაგრამ ბევრ თამაშს აქვს პარამეტრი: Bohemia-ს თამაშები შეიძლება ნაკლები ლოგით გაეშვას, plugin-ებს ხშირად აქვთ შენახვის ვადის ოფციები, Minecraft-ისთვის კი log4j-ის კონფიგურაცია აკონტროლებს, რამდენი ძველი ლოგი ინახება. შენს სერვერზე ამას logrotate ან ღამის find აკეთებს. ლოგები, რომელთა შენახვაც ღირს განიხილავს, რა შეინახო და რამდენ ხანს.
  • შეზღუდე თამაშის შიდა backup-ები. შეამცირე Valheim-ის -backups, დააყენე შენახვის რაოდენობა ნებისმიერ backup plugin-ში და ბოლო ერთი-ორი დღის მიღმა ყველაფრისთვის პანელის backup-ებს დაეყრდენი. RE:NODE-ზე პანელის backup-ები ინახება მანქანის გარეთ და არა სერვერის საკუთარ საქაღალდეში.
  • გამორთე heap dump-ები, თუ კონკრეტულ მეხსიერების პრობლემას არ დასდევ. JVM-ის ფლაგი, როგორიცაა -XX:+HeapDumpOnOutOfMemoryError, ერთი გამოძიებისთვის სასარგებლოა, პატარა დისკზე მუდმივ პარამეტრად კი საშიში.
  • რუკები ნაკლებად დაარენდერე, ან მონაცემთა ბაზაში. შეზღუდე რენდერის მასშტაბის დონეები, დაარენდერე მხოლოდ სამყაროს საზღვრის შიგნით, ან tile-ები მონაცემთა ბაზაში შეინახე, სადაც რუკის plugin ამის მხარდაჭერას იძლევა.
  • mod-ები სწორად წაშალე. Workshop-ის mod-ის ამოღებისას ამოიღე ის სერვერის mod-ების სიიდანაც და cache-ის საქაღალდიდანაც.
  • წინასწარ გენერაციამდე სამყაროს საზღვარი დააწესე. region ფაილები გამოკვლეული ტერიტორიის ფუნქციაა. შეუზღუდავი Minecraft-ის სამყარო, რომელზეც მოთამაშეები elytra-თი დაფრინავენ, განუსაზღვრელად იზრდება; სამყაროს საზღვრები და წინასწარი გენერაცია მას ზღვარს უწესებს.

RE:NODE-ზე დისკის გამოყენება კონსოლის გვერდზე გეგმის ლიმიტთან მიმართებით გრაფიკზეა ნაჩვენები, რაც ნელ ზრდას ხილულს ხდის, სანამ ის სასწრაფო გახდება.

მარაგი, რომელიც სამყაროს მიღმა გჭირდება#

დისკი, რომელიც ზუსტად იმ ზომისაა, რა ზომისაც მასზე არსებული ფაილები, უკვე სავსეა, რადგან რამდენიმე რუტინულ ოპერაციას დროებითი ადგილი სჭირდება:

  • შენახვა. ბევრი თამაში ახალ save-ს ძველის გვერდით წერს და მათ ადგილებს უცვლის, რისთვისაც დაახლოებით სამყაროს ზომის თავისუფალი ადგილი სჭირდება.
  • განახლება. SteamCMD შეცვლილ ფაილებს მათ გამოყენებამდე ამზადებს. დიდ patch-ს შეცვლილი კონტენტის შესადარისი თავისუფალი ადგილი სჭირდება.
  • backup-ები. არქივის აწყობას სამუშაო ადგილი სჭირდება, სანამ ის გაიგზავნება.
  • ატვირთვა და გახსნა. 3 GB არქივის ატვირთვასა და ადგილზე გახსნას სჭირდება 3 GB პლუს გახსნილი ზომა, სანამ არქივს არ წაშლი.

სამუშაო წესია, რომ თამაშის სერვერზე დისკის 20-30% თავისუფალი იყოს, და მეტი იმ სერვერზე, რომელიც ხშირად ახლდება ან დიდი სამყარო აქვს. თუ სერვერი გასუფთავების შემდეგ 70-80%-ზე ქვემოთ ვერ რჩება, გეგმა უბრალოდ ზედმეტად პატარაა იმ სამყაროსთვის, რომელიც მასზე მუშაობს.

როცა დისკი სავსეა და სერვერი გათიშულია#

თუ ამას კითხულობ გათიშული სერვერითა და სავსე დისკით, თანმიმდევრობა, რომელიც საქმეს არ აუარესებს:

  1. ჯერ ნუ ჩართავ სერვერს თავიდან. კიდევ ერთმა წარუმატებელმა შენახვამ შეიძლება სამყარო კიდევ უფრო დააზიანოს.
  2. შეამოწმე სამყაროს ფაილების ზომები უახლეს backup-თან შედარებით. save, რომელიც უეცრად პაწაწინა ან ნულბაიტიანია, დაზიანებულია.
  3. გაათავისუფლე ადგილი ჯერ ყველაზე უსაფრთხო წაშლებით: crash dump-ები, ძველი ლოგები, გახსნილი ატვირთვები.
  4. გააკეთე მიმდინარე მდგომარეობის backup, ახლა, როცა ადგილი გაქვს, და ჩაკეტე.
  5. აღადგინე სამყარო backup-იდან, თუ მე-2 ნაბიჯმა დაზიანება აღმოაჩინა.
  6. ჩართე სერვერი და უყურე, რომ პირველი autosave წარმატებით შესრულდეს.
  7. გაასწორე მიზეზი ზემოთ მოცემული სიიდან, რომ დისკი ხელახლა არ გაივსოს.

თუ პანელის backup-ები ერთადერთი კარგი ასლია, RE:NODE-ზე მისი აღდგენა ერთი ღილაკია; თამაშის სერვერის backup-ის სტრატეგია განიხილავს, რა უნდა შეიცავდეს backup-ი თითო თამაშზე, რომ აღდგენა სრული იყოს.

FAQ#

რატომ არის ჩემი თამაშის სერვერის დისკი სავსე, როცა სამყარო პატარაა?

იმიტომ, რომ მას იშვიათად სამყარო ავსებს. ძველი ლოგები, თამაშის ლოკალური backup-ები, crash dump-ები, რუკის tile-ები და Workshop-ის cache სამყაროს გვერდით შეუზღუდავად იზრდება. ჩამოთვალე საქაღალდეები ზომის მიხედვით და დამნაშავე ჩვეულებრივ რამდენიმე დონეში აშკარა ხდება.

შეუძლია სავსე დისკს ჩემი სამყარო დააზიანოს?

კი. თუ შენახვა დაიწყო და ვერ დასრულდა, სამყაროს ფაილი შეიძლება შეკვეცილი ან ცარიელი დარჩეს. გადატვირთვამდე გაათავისუფლე ადგილი, შეადარე სამყაროს ფაილის ზომა ბოლო backup-ს და აღადგინე, თუ შემცირდა.

უსაფრთხოა ლოგ ფაილების წაშლა, სანამ სერვერი მუშაობს?

ძველი, როტირებული ლოგების - კი. ფაილის, რომელშიც სერვერი ამჟამად წერს - არა, ან ყოველ შემთხვევაში უსარგებლოდ, რადგან Linux-ზე ადგილი არ თავისუფლდება, სანამ პროცესი მას არ დახურავს. ჯერ სერვერი გააჩერე ან მხოლოდ ძველი ფაილები წაშალე.

იყენებს პანელის backup-ები ჩემი სერვერის დისკის ადგილს?

RE:NODE-ზე backup-ები ინახება იმ მანქანის გარეთ, რომელსაც იცავს, და არა სერვერის საკუთარ საქაღალდეში. backup-ები, რომლებსაც თამაში ან plugin სერვერის საქაღალდეში წერს, მაგალითად Valheim-ის სამყაროს ავტომატური backup-ები, სერვერის დისკს იყენებს.

რამდენი თავისუფალი ადგილი უნდა დავტოვო?

ოციდან ოცდაათ პროცენტამდე. შენახვებს, განახლებებს, backup-ებს და ატვირთვის გახსნას ყველას დროებითი ადგილი სჭირდება, და დისკი, რომელშიც ფაილები ზუსტად ეტევა, პირველივე ასეთ შემთხვევაში ჩავარდება.


კომენტარები

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

0/2000