Cei care administrează servere de Counter-Strike 2 pe Linux s-au lovit probabil de problema asta: serverul rulează perfect câteva ore, dar în momentul în care se votează o mapă nouă și începe procesul de changelevel, procesul moare subit fără vreun mesaj de eroare clar în consolă.
Din experiență, problema nu vine de la fișierele de bază ale jocului, ci de la modul în care Linux gestionează memoria RAM în timpul tranziției dintre hărți, combinat cu modul în care anumite plugin-uri rețin entitățile în memorie.
Pasul 1: Verifică dacă te-a vizitat OOM Killer
De cele mai multe ori, serverul nu dă crash din cauza unui bug intern, ci este ucis direct de sistemul de operare. În timpul schimbării hărții, CS2 încarcă noua mapă în memorie înainte de a o descărca complet pe cea veche. Asta generează un vârf instantaneu de consum RAM.
Dacă VPS-ul tău are 8 GB RAM și memoria este deja la limită, kernelul Linux intervine pentru a preveni blocarea sistemului și ucide cel mai mare consumator (adică procesul cs2).
Rulează această comandă în terminal imediat după crash:
dmesg -T | grep -i -E 'oom|kill'
Dacă vezi linii care conțin Out of memory: Kill process și numele procesului cs2, cauza este clară: ai rămas fără memorie fizică.
Pasul 2: Creează un fișier de Swap stabil

Mulți provideri de hosting livrează mașinile virtuale fără partiție Swap configurată. Chiar dacă ai un SSD rapid, lipsa memoriei virtuale va duce la crash instantaneu la spike-uri de consum.
Eu aș recomanda să adaugi cel puțin 4 GB de Swap pe un VPS dedicat jocurilor. Iată cum o faci rapid pe Ubuntu/Debian:
# Creează un fișier de 4GB pentru swap
sudo fallocate -l 4G /swapfile
# Setează permisiunile corecte
sudo chmod 600 /swapfile
# Formatează fișierul ca swap
sudo mkswap /swapfile
# Activează-l
sudo swapon /swapfile
# Fă setarea permanentă după reboot
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
După ce ai activat Swap-ul, CS2 va avea unde să descarce temporar bufferul de memorie în timpul procesului de preload al hărților noi.
Pasul 3: Depistarea plugin-urilor problematice din CounterStrikeSharp
Dacă OOM Killer nu raportează nimic, atunci problema este de natură software. CounterStrikeSharp (CSS) rulează pe .NET și folosește un sistem de Garbage Collection (GC). Unele plugin-uri de statistici sau cele care modifică skin-urile armelor salvează date despre jucători și uită să le elibereze la OnMapEnd.
Urmează această metodă de troubleshooting:
- Oprește serverul.
- Redenumește temporar folderul
addons/counterstrikesharp/plugins în plugins_backup.
- Pornește serverul doar cu plugin-urile native și forțează schimbarea hărții de 10 ori consecutiv din consolă folosind comanda
map de_inferno, apoi map de_mirage etc.
Dacă serverul nu mai crapă, înseamnă că unul dintre plugin-urile tale are o scurgere de memorie (memory leak). Adaugă-le înapoi în grupuri de câte 2-3 pentru a izola vinovatul.
Pasul 4: Automatizează restartul prin Systemd

În producție, indiferent cât de stabil este serverul, vrei ca acesta să pornească singur înapoi dacă dă crash noaptea. Nu rula serverul de CS2 direct în screen sau tmux fără un manager de procese.
Creează un serviciu systemd dedicat. Scrie un fișier în /etc/systemd/system/cs2.service:
[Unit]
Description=Server dedicat CS2
After=network.target
[Service]
Type=simple
User=cs2server
WorkingDirectory=/home/cs2server/serverfiles
ExecStart=/home/cs2server/serverfiles/game/bin/linux64/cs2 -dedicated -usercon +game_type 0 +game_mode 1 +map group_mg -ip 0.0.0.0 -port 27015
Restart=always
RestartSec=5
LimitNOFILE=200000
[Install]
WantedBy=multi-user.target
Rulează systemctl daemon-reload și systemctl start cs2. Cu opțiunea Restart=always, dacă serverul se oprește la schimbarea hărții, va fi repornit automat în 5 secunde, menținând downtime-ul la minimum.
Voi ce plugin-uri de CounterStrikeSharp sau Metamod ați observat că provoacă cele mai mari probleme de stabilitate sau scurgeri de RAM pe serverele voastre?