CH-J Server Managerمدیریت سرور از طریق SSH
منو
منبع منتشرشده

CH-J Server Manager

پوشه‌ها و فایل‌های یک نسخهٔ مشخص از برنامه را مرور کنید.

دانلود ZIP منبع
CH-J / Server Manager 377 فایل
core-20261019T111616Z-160a00bfcddc افزوده‌شده: · ساخته‌شده:
system-monitor.md افزوده‌شده: تاریخ ثبت نشده است ۵٫۵ KB · 53 خط
کد دانلود فایل
1# chj.system-monitor – metriky, paměť a virtuální paměť
3Plugin čte metriky přes existující SSH relaci Core. Linux a Windows mají oddělené backendy; platforma se určuje
4z `uname -s`, jinak z Windows registru / `Win32_OperatingSystem` (`src/main/sessions/platformDetect.js`).
5Neznámý systém vrací `METRICS_PLATFORM_UNSUPPORTED`, nikdy se neposílá skript pro jiný OS.
7## Metriky
8- Linux: pevný POSIX příkaz v `src/main/sessions/sessionManager.js` (`/proc`, `df`, `ip`), detail paměti
9 `parseLinuxMemoryDetail`. Použitá RAM = MemTotal − MemFree − Buffers − Cached − SReclaimable (bez dvojího počítání).
10- Windows: `src/main/sessions/windowsMetrics.js` – PowerShell skript přes stdin (bootstrap `-EncodedCommand`),
11 funguje s výchozím shellem cmd.exe i PowerShell. CPU z rozdílu dvou vzorků raw čítačů, load average se
12 nepředstírá (místo něj fronta procesoru). Paměť jako nepřekrývající se seznamy (používaná, upravená, pohotovostní,
13 volná); commit limit není velikost pagefile. Pokud ovladač síťové karty nehlásí bajty, zobrazí se pakety a důvod.
14- NGINX inspekce a vzdálený editor jsou na Windows odmítnuty kódem `FEATURE_PLATFORM_UNSUPPORTED`.
16## Latence (terminál)
17- ICMP: 3 pakety lokálním `ping` (bez shellu, bez root) na adresu použitou SSH, medián, ztráta, důvod
18 (timeout/unreachable/denied). Blokované ICMP neznamená nedostupný server.
19- SSH odezva: 3 postupné vzorky přes SSH transport (keepalive request), záložně `exit 0`; další měření až 10 s
20 po dokončení předchozího, zastaví se při odpojení. ICMP a SSH se měří nezávisle.
22## Virtuální paměť
23- Oddíl „Paměť a virtuální paměť“ ukazuje rozpad RAM, historii RAM/swap, swap oblasti nebo pagefile.
24 Čtení metrik nepotřebuje sudo; správa vyžaduje oprávnění `system.memory.manage`.
25- Linux (`src/main/system/remoteSwap.sh`, root nebo sudo): vytvoření, aktivace, bezpečná deaktivace, změna velikosti,
26 priority, persistence (fstab se zálohou `/etc/fstab.chj-backup-*`) a smazání swap souborů jen v `/swapfile*`,
27 `/swap/<název>`, `/var/lib/swap/<název>`; velikost 64 MiB–64 GiB. Souborové systémy ext2/3/4, XFS, Btrfs
28 (mkswapfile/NOCOW), F2FS. Swapoff se odmítne, pokud by data nebylo kam přesunout (MemAvailable minus rezerva
29 max(10 % RAM, 512 MiB), nejvýše 25 % RAM, plus volný jiný swap); nepoužitý swap lze vypnout vždy. Oddíly lze jen deaktivovat/přeprioritizovat, zram/zswap jen číst.
31### Priorita swapu
33- **Efektivní** priorita = sloupec Priority v `/proc/swaps`; **uložená** = `pri=` v `/etc/fstab` (bez `pri=` = automatická). Záporná čísla přiděluje jádro v automatickém režimu (`-2`, `-3`, …); UI je zobrazí jako „automatická“, nikdy je nenabízí jako vstup.
34- Dialog „Nastavení priority SWAP“: režim Automatická / Vlastní (0–32767, rozsah `SWAP_FLAG_PREFER` swapon(2)), aktuální a uložená priorita, volba Hned / Jen uložit a u swapu bez záznamu ve fstab volba „Uložit i pro restart“. Tabulka ukazuje pořadí (1. = přednostně, další = záloha, stejná priorita = střídání) a rozdíl uloženo/aktivní.
35- Uložení: existující záznam se upraví na místě (ostatní volby, spec UUID=/LABEL=/PARTUUID=/cesta, dump/pass a komentář zůstanou, ostatní řádky beze změny), automatická odebere jen `pri=`; záznam se hledá podle kanonické identity (findfs, readlink -f). Více záznamů pro jeden swap ← `FSTAB_AMBIGUOUS`, nic se nemění. Každá změna má jedinečnou zálohu `/etc/fstab.chj-backup-<čas>-<náhodné>` (posledních 10).
36- Okamžité uplatnění: jádro neumí změnit prioritu aktivního swapu, proto swapoff + swapon jen tohoto swapu (nikdy `swapoff -a`), předem kontrola paměti; při riziku `SWAPOFF_UNSAFE` se nic nezmění a UI nabídne jen uložení pro příští aktivaci/restart. Selže-li swapon, swap se znovu aktivuje s původní prioritou a fstab se vrátí ze zálohy. Restart CH-J nikdy neprovádí.
37- Aktivace, změna velikosti a „Použít po restartu“ posílají `keep`: použije se `pri=` z fstab, jinak explicitní běžící priorita, jinak automatická – uživatelská priorita se tak neztratí.
39- Windows (`src/main/system/windowsPagefile.ps1`, SSH relace se zvýšeným tokenem, UAC se neobchází): automatická
40 správa, vlastní velikost (≥ 16 MB nebo velikost spravovaná systémem), přidání/odebrání pagefile na jednotce.
41 Změny se projeví až po restartu; **CH-J Windows nikdy nerestartuje**. Před změnou se ukládá záloha, UI ukazuje
42 stav „čeká na restart“ a varuje před odebráním posledního pagefile (commit limit, výpis paměti při pádu).
44## Testy
45- `npm test` – jednotkové testy (`test/sessionManager.test.js`, `test/latencyMonitor.test.js`, `test/remoteSwap.test.js`).
46- `test/linuxVmIntegration.test.js` – jen izolovaná Linux testovací VM (`CHJ_VM_HOST`, `CHJ_VM_FINGERPRINT`, `CHJ_VM_KEY`,
47 `CHJ_VM_SUDO_PASSWORD` nebo `CHJ_VM_SUDO_PASSWORD_FILE` + `_LINE`); metriky, latence, swap i chj.users přes skutečné SSH.
48- `CHJ_USERS_INTEGRATION=1 CHJ_USERS_IMAGE=chj-users-it-debian node --test test/systemMonitorIntegration.test.js` –
49 destruktivní testy swapu v jednorázovém privilegovaném kontejneru (`CHJ_SWAP_SECOND_FS=btrfs` pro Btrfs).
50- `test/systemMonitorWindowsIntegration.test.js` – jen izolovaný testovací Windows stroj (`CHJ_USERS_WINDOWS_*`);
51 vrací původní nastavení pagefile.
52- `npx electron scripts/smokeSystemMonitorUi.js [adresář-snímků]` – UI smoke (Linux kontejner,
53 `CHJ_SMOKE_WINDOWS=1` pro Windows VM).
SHA-256059ce6a51eff6a5476f5c82ed5b27a49578a95d26c6dc3e96991ecf6be16b9fe

CH-J Proprietary Software License 1.14 · کد منبع تحت CH-J Proprietary Software License 1.14 ارائه می‌شود. در دسترس بودن آن شرایط مجوز را تغییر نمی‌دهد و حق اضافه‌ای اعطا نمی‌کند.

SHA-256 بایگانیa9605c0870a223b6a8542bb0705edd51d8b04f3069582653417a8397fabcc09a
فایل‌ها