# chj.system-monitor – metriky, paměť a virtuální paměť Plugin čte metriky přes existující SSH relaci Core. Linux a Windows mají oddělené backendy; platforma se určuje z `uname -s`, jinak z Windows registru / `Win32_OperatingSystem` (`src/main/sessions/platformDetect.js`). Neznámý systém vrací `METRICS_PLATFORM_UNSUPPORTED`, nikdy se neposílá skript pro jiný OS. ## Metriky - Linux: pevný POSIX příkaz v `src/main/sessions/sessionManager.js` (`/proc`, `df`, `ip`), detail paměti `parseLinuxMemoryDetail`. Použitá RAM = MemTotal − MemFree − Buffers − Cached − SReclaimable (bez dvojího počítání). - Windows: `src/main/sessions/windowsMetrics.js` – PowerShell skript přes stdin (bootstrap `-EncodedCommand`), funguje s výchozím shellem cmd.exe i PowerShell. CPU z rozdílu dvou vzorků raw čítačů, load average se nepředstírá (místo něj fronta procesoru). Paměť jako nepřekrývající se seznamy (používaná, upravená, pohotovostní, volná); commit limit není velikost pagefile. Pokud ovladač síťové karty nehlásí bajty, zobrazí se pakety a důvod. - NGINX inspekce a vzdálený editor jsou na Windows odmítnuty kódem `FEATURE_PLATFORM_UNSUPPORTED`. ## Latence (terminál) - ICMP: 3 pakety lokálním `ping` (bez shellu, bez root) na adresu použitou SSH, medián, ztráta, důvod (timeout/unreachable/denied). Blokované ICMP neznamená nedostupný server. - SSH odezva: 3 postupné vzorky přes SSH transport (keepalive request), záložně `exit 0`; další měření až 10 s po dokončení předchozího, zastaví se při odpojení. ICMP a SSH se měří nezávisle. ## Virtuální paměť - Oddíl „Paměť a virtuální paměť“ ukazuje rozpad RAM, historii RAM/swap, swap oblasti nebo pagefile. Čtení metrik nepotřebuje sudo; správa vyžaduje oprávnění `system.memory.manage`. - Linux (`src/main/system/remoteSwap.sh`, root nebo sudo): vytvoření, aktivace, bezpečná deaktivace, změna velikosti, priority, persistence (fstab se zálohou `/etc/fstab.chj-backup-*`) a smazání swap souborů jen v `/swapfile*`, `/swap/<název>`, `/var/lib/swap/<název>`; velikost 64 MiB–64 GiB. Souborové systémy ext2/3/4, XFS, Btrfs (mkswapfile/NOCOW), F2FS. Swapoff se odmítne, pokud by data nebylo kam přesunout (MemAvailable minus rezerva 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. - Windows (`src/main/system/windowsPagefile.ps1`, SSH relace se zvýšeným tokenem, UAC se neobchází): automatická správa, vlastní velikost (≥ 16 MB nebo velikost spravovaná systémem), přidání/odebrání pagefile na jednotce. Změny se projeví až po restartu; **CH-J Windows nikdy nerestartuje**. Před změnou se ukládá záloha, UI ukazuje stav „čeká na restart“ a varuje před odebráním posledního pagefile (commit limit, výpis paměti při pádu). ## Testy - `npm test` – jednotkové testy (`test/sessionManager.test.js`, `test/latencyMonitor.test.js`, `test/remoteSwap.test.js`). - `test/linuxVmIntegration.test.js` – jen izolovaná Linux testovací VM (`CHJ_VM_HOST`, `CHJ_VM_FINGERPRINT`, `CHJ_VM_KEY`, `CHJ_VM_SUDO_PASSWORD` nebo `CHJ_VM_SUDO_PASSWORD_FILE` + `_LINE`); metriky, latence, swap i chj.users přes skutečné SSH. - `CHJ_USERS_INTEGRATION=1 CHJ_USERS_IMAGE=chj-users-it-debian node --test test/systemMonitorIntegration.test.js` – destruktivní testy swapu v jednorázovém privilegovaném kontejneru (`CHJ_SWAP_SECOND_FS=btrfs` pro Btrfs). - `test/systemMonitorWindowsIntegration.test.js` – jen izolovaný testovací Windows stroj (`CHJ_USERS_WINDOWS_*`); vrací původní nastavení pagefile. - `npx electron scripts/smokeSystemMonitorUi.js [adresář-snímků]` – UI smoke (Linux kontejner, `CHJ_SMOKE_WINDOWS=1` pro Windows VM).
شائع شدہ سورس
سورس ZIP ڈاؤن لوڈ کریں
CH-J Server Manager
ایپلیکیشن کی کسی مخصوص ریلیز کی ڈائریکٹریز اور فائلیں دیکھیں۔
CH-J / Server Manager
368 فائلیں
core-20261017T201717Z-057348c4a70f
شامل کیا گیا: تاریخ درج نہیں · بلڈ کیا گیا:
1
# chj.system-monitor – metriky, paměť a virtuální paměť3
Plugin čte metriky přes existující SSH relaci Core. Linux a Windows mají oddělené backendy; platforma se určuje4
z `uname -s`, jinak z Windows registru / `Win32_OperatingSystem` (`src/main/sessions/platformDetect.js`).5
Neznámý systém vrací `METRICS_PLATFORM_UNSUPPORTED`, nikdy se neposílá skript pro jiný OS.7
## Metriky8
- Linux: pevný POSIX příkaz v `src/main/sessions/sessionManager.js` (`/proc`, `df`, `ip`), detail paměti9
`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 se12
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ůvod18
(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 s20
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, Btrfs28
(mkswapfile/NOCOW), F2FS. Swapoff se odmítne, pokud by data nebylo kam přesunout (MemAvailable minus rezerva29
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.30
- Windows (`src/main/system/windowsPagefile.ps1`, SSH relace se zvýšeným tokenem, UAC se neobchází): automatická31
správa, vlastní velikost (≥ 16 MB nebo velikost spravovaná systémem), přidání/odebrání pagefile na jednotce.32
Změny se projeví až po restartu; **CH-J Windows nikdy nerestartuje**. Před změnou se ukládá záloha, UI ukazuje33
stav „čeká na restart“ a varuje před odebráním posledního pagefile (commit limit, výpis paměti při pádu).35
## Testy36
- `npm test` – jednotkové testy (`test/sessionManager.test.js`, `test/latencyMonitor.test.js`, `test/remoteSwap.test.js`).37
- `test/linuxVmIntegration.test.js` – jen izolovaná Linux testovací VM (`CHJ_VM_HOST`, `CHJ_VM_FINGERPRINT`, `CHJ_VM_KEY`,38
`CHJ_VM_SUDO_PASSWORD` nebo `CHJ_VM_SUDO_PASSWORD_FILE` + `_LINE`); metriky, latence, swap i chj.users přes skutečné SSH.39
- `CHJ_USERS_INTEGRATION=1 CHJ_USERS_IMAGE=chj-users-it-debian node --test test/systemMonitorIntegration.test.js` –40
destruktivní testy swapu v jednorázovém privilegovaném kontejneru (`CHJ_SWAP_SECOND_FS=btrfs` pro Btrfs).41
- `test/systemMonitorWindowsIntegration.test.js` – jen izolovaný testovací Windows stroj (`CHJ_USERS_WINDOWS_*`);42
vrací původní nastavení pagefile.43
- `npx electron scripts/smokeSystemMonitorUi.js [adresář-snímků]` – UI smoke (Linux kontejner,44
`CHJ_SMOKE_WINDOWS=1` pro Windows VM).SHA-256
999250c85932e18ddbe1e46a417d7d668dfc5d7276069b65707460e9e602c46dCH-J Proprietary Software License 1.14 · سورس CH-J Proprietary Software License 1.14 کے تحت فراہم کیا جاتا ہے۔ اس کی دستیابی لائسنس کی شرائط نہیں بدلتی اور نہ ہی اضافی حقوق دیتی ہے۔
آرکائیو کا SHA-256
cf4455b698f0f28e456a37b1834976a0194d8486acb7101052d59a838745cca3