ΠΠΎΠΌΠ°Π½Π΄ΠΈ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΊΠΎΠ½ΡΡΠΌΠ°ΡΠΈΡΡΠ° Π½Π° RAM Π² Linux
ΠΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ΡΡ Π½Π° RAM ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π² Linux ΠΎΠ·Π½Π°ΡΠ°Π²Π° Π·Π°ΡΠ²ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΠΏΠ°ΠΌΠ΅Ρ Π½Π° ΡΠ΄ΡΠΎΡΠΎ Π·Π° ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π·Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠ°ΡΠ° ΠΏΠ°ΠΌΠ΅Ρ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° swap ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠΈ Π½Π° ΡΠ΅Π·ΠΈΠ΄Π΅Π½ΡΠ½ΠΈΡ Π½Π°Π±ΠΎΡ Π·Π° Π²ΡΠ΅ΠΊΠΈ ΠΏΡΠΎΡΠ΅Ρ. ΠΠ°ΠΉ-ΠΏΡΠ΅ΠΊΠΈΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ ΠΏΠΎΠΌΠΎΡΠ½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ β free, top, htop, ps, vmstat ΠΈ smem β Π²ΡΡΠΊΠ° ΠΎΡ ΠΊΠΎΠΈΡΠΎ ΡΠ°Π·ΠΊΡΠΈΠ²Π° ΡΠ°Π·Π»ΠΈΡΠ΅Π½ ΡΠ»ΠΎΠΉ ΠΎΡ ΠΉΠ΅ΡΠ°ΡΡ
ΠΈΡΡΠ° Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°, ΠΎΡ ΠΎΠ±ΡΠΈΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π·Π° ΡΡΠ»Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π΄ΠΎ ΠΏΡΠΎΠΏΠΎΡΡΠΈΠΎΠ½Π°Π»Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° Π½Π°Π±ΠΎΡΠ° (PSS) Π·Π° Π²ΡΠ΅ΠΊΠΈ ΠΏΡΠΎΡΠ΅Ρ.
ΠΡΠ΅ΠΊΠΎΠΌΠ΅ΡΠ½ΠΎΡΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π·Π°Π΄Π΅ΠΉΡΡΠ²Π° Linux ΡΠ±ΠΈΠ΅ΡΠ° ΠΏΡΠΈ ΠΈΠ·ΡΠ΅ΡΠΏΠ²Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° (OOM), ΠΊΠΎΠΉΡΠΎ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»Π½ΠΎ ΠΏΡΠ΅ΠΊΡΠ°ΡΡΠ²Π° ΠΏΡΠΎΡΠ΅ΡΠΈ, Π·Π° Π΄Π° ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈ RAM. Π Π°Π·Π±ΠΈΡΠ°Π½Π΅ΡΠΎ ΠΊΠΎΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΡΠ°Π·ΠΊΡΠΈΠ²Π°Ρ ΠΊΠΎΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈ β ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ Π²ΡΡΡΠ½ΠΎΡΡ ΠΎΠ·Π½Π°ΡΠ°Π²Π°Ρ ΡΠ΅Π·ΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈ β Π΅ ΡΠ°Π·Π»ΠΈΠΊΠ°ΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΎ ΡΠΏΡΠ°Π²ΡΠ½Π΅ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΈ ΠΏΡΠΎΠ°ΠΊΡΠΈΠ²Π½ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠ°ΠΏΠ°ΡΠΈΡΠ΅ΡΠ°. Π’ΠΎΠ²Π° ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΎΠ±Ρ Π²Π°ΡΠ° Π²ΡΠ΅ΠΊΠΈ ΠΎΡΠ½ΠΎΠ²Π΅Π½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ Π½Π° ΡΠ΄ΡΠΎΡΠΎ, ΠΎΡ ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΠ΅ΡΠ°Ρ, ΠΈ Π³ΡΠ°Π½ΠΈΡΠ½ΠΈΡΠ΅ ΡΠ»ΡΡΠ°ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·Π½Π΅Π½Π°Π΄Π²Π°Ρ Π΄ΠΎΡΠΈ ΠΎΠΏΠΈΡΠ½ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΈ.
ΠΠ°ΡΠΎ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ΡΡ Π½Π° RAM Π΅ Π²Π°ΠΆΠ΅Π½ Π½Π° Linux ΡΡΡΠ²ΡΡΠΈ
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π² Linux Π΅ ΡΠΌΠΈΡΠ»Π΅Π½ΠΎ Π°Π³ΡΠ΅ΡΠΈΠ²Π½ΠΎ. Π―Π΄ΡΠΎΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΡΠ»Π°ΡΠ° Π½Π°Π»ΠΈΡΠ½Π° RAM ΠΊΠ°ΡΠΎ ΠΊΠ΅Ρ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠΈ Π·Π° ΡΡΠΊΠΎΡΡΠ²Π°Π½Π΅ Π½Π° Π΄ΠΈΡΠΊΠΎΠ²ΠΈΡ I/O, ΠΊΠΎΠ΅ΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΎΡΡΠΈΡΠ°ΡΠ° ΠΏΠΎΡΡΠΈ Π½ΡΠ»Π΅Π²Π° ΡΠ²ΠΎΠ±ΠΎΠ΄Π½Π° ΠΏΠ°ΠΌΠ΅Ρ, Π½Π΅ Π΅ Π½Π΅ΠΏΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠ΄ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ β ΡΡ ΠΌΠΎΠΆΠ΅ ΠΏΡΠΎΡΡΠΎ Π΄Π° ΠΊΠ΅ΡΠΈΡΠ° Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ. ΠΠΎΠ³ΡΠ΅ΡΠ½ΠΎΡΠΎ ΡΡΠ»ΠΊΡΠ²Π°Π½Π΅ Π½Π° ΡΠΎΠ²Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΅ Π΅Π΄Π½Π° ΠΎΡ Π½Π°ΠΉ-ΡΠ΅ΡΡΠΈΡΠ΅ Π³ΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π·Π° ΠΏΠ°ΠΌΠ΅Ρ.
ΠΡΠ½ΠΎΠ²Π½ΠΈ ΠΏΡΠΈΡΠΈΠ½ΠΈ Π·Π° Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π½Π° RAM:
- ΠΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΡΠ²Π°Π½Π΅ Π½Π° OOM ΡΠ±ΠΈΠ΅ΡΠ°: ΠΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°ΠΉΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΠΈ, ΠΊΠΎΠ½ΡΡΠΌΠΈΡΠ°ΡΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΠΌΠ΅Ρ, ΠΏΡΠ΅Π΄ΠΈ ΡΠ΄ΡΠΎΡΠΎ Π΄Π° ΠΏΡΠ΅ΠΊΡΠ°ΡΠΈ ΠΊΡΠΈΡΠΈΡΠ½ΠΈ ΡΡΠ»ΡΠ³ΠΈ.
- ΠΡΠΊΡΠΈΠ²Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° swap: ΠΠ½ΡΠ΅Π½Π·ΠΈΠ²Π½Π°ΡΠ° swap Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡ (ΡΡΠ°ΠΏΠ²Π°Π½Π΅) ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΈΠ·ΡΠ΅ΡΠΏΠ²Π°Π½Π΅ Π½Π° RAM ΠΈ ΠΏΡΠΈΡΠΈΠ½ΡΠ²Π° ΡΠ΅ΡΠΈΠΎΠ·Π½Π° I/O Π»Π°ΡΠ΅Π½ΡΠ½ΠΎΡΡ.
- ΠΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠ° Π½Π° ΠΈΠ·ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ: ΠΡΠΎΡΠ΅ΡΠΈ Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π½Π°ΡΠ°ΡΡΠ²Π°Ρ RSS Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ ΡΠΈΠ³Π½Π°Π»ΠΈΠ·ΠΈΡΠ°Ρ Π·Π° ΠΈΠ·ΡΠΈΡΠ°Π½ΠΈΡ Π½Π° Π½ΠΈΠ²ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
- ΠΠ»Π°Π½ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠ°ΠΏΠ°ΡΠΈΡΠ΅ΡΠ°: ΠΠ°Π½Π½ΠΈΡΠ΅ Π·Π° ΡΠ΅Π½Π΄Π΅Π½ΡΠΈΠΈΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠΈΡΠ°Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡΡΠ° Π·Π° Π²Π΅ΡΡΠΈΠΊΠ°Π»Π½ΠΎ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅ ΠΈΠ»ΠΈ ΠΏΡΠ΅ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ.
- ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°: Π Π΅Π³ΡΠ»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π°
vm.swappiness, ΠΎΠ³ΡΠΎΠΌΠ½ΠΈ ΡΡΡΠ°Π½ΠΈΡΠΈ ΠΈ NUMA ΡΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΡ ΠΈΠ·ΠΈΡΠΊΠ²Π° Π±Π°Π·ΠΎΠ²ΠΈ Π΄Π°Π½Π½ΠΈ Π·Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°.
Π ΡΡΠ΅Π΄Π° Π·Π° VPS Π₯ΠΎΡΡΠΈΠ½Π³, ΠΊΡΠ΄Π΅ΡΠΎ ΡΠ΅ΡΡΡΡΠΈΡΠ΅ ΡΠ΅ ΡΠΏΠΎΠ΄Π΅Π»ΡΡ ΠΈΠ»ΠΈ ΡΠ° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈ ΠΎΡ Π»ΠΈΠΌΠΈΡΠΈΡΠ΅ Π½Π° Ρ ΠΈΠΏΠ΅ΡΠ²Π°ΠΉΠ·ΠΎΡΠ°, ΡΠΎΡΠ½ΠΈΡΡ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π½Π° RAM Π΅ ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΠΊΡΠΈΡΠΈΡΠ΅Π½ β Π΄ΠΎΡΡΠΈΠ³Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π²Π°Π½ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π±Π΅Π·ΡΡΠΌΠ½ΠΎ Π²Π»ΠΎΡΠ°Π²Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°, ΠΏΡΠ΅Π΄ΠΈ Π΄Π° ΡΠ΅ Π·Π°Π΄Π΅ΠΉΡΡΠ²Π° ΠΊΠ°ΠΊΠ²ΠΎΡΠΎ ΠΈ Π΄Π° Π΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅.
Π Π°Π·Π±ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΡΡΠ° Π·Π° ΠΏΠ°ΠΌΠ΅Ρ Π² Linux
ΠΡΠ΅Π΄ΠΈ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅ ΠΊΠ°ΠΊΠ²Π°ΡΠΎ ΠΈ Π΄Π° Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ Π²ΡΡΡΠ½ΠΎΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π°Ρ ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡΠ΅ ΠΊΠΎΠ»ΠΎΠ½ΠΈ.
| Π’Π΅ΡΠΌΠΈΠ½ | ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ |
|---|---|
| Total | ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠ° RAM (ΠΈΠ»ΠΈ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½Π°ΡΠ° ΠΌΠ°ΡΠΈΠ½Π°) |
| Used | ΠΠ°ΠΌΠ΅Ρ, Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΊΠΎΠ½ΡΡΠΌΠΈΡΠ°Π½Π° ΠΎΡ ΠΏΡΠΎΡΠ΅ΡΠΈ ΠΈ ΡΡΡΡΠΊΡΡΡΠΈ Π½Π° ΡΠ΄ΡΠΎΡΠΎ |
| Free | ΠΠ°ΠΏΡΠ»Π½ΠΎ Π½Π΅ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° RAM β ΡΠ΅ΡΡΠΎ ΠΏΠΎΠ΄Π²Π΅ΠΆΠ΄Π°ΡΠΎ Π½ΠΈΡΠΊΠ° |
| Shared | ΠΠ°ΠΌΠ΅Ρ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° ΠΎΡ tmpfs ΠΈ ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½Π° ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΡΠ΅ΡΠΈ |
| Buff/Cache | ΠΡΡΠ΅ΡΠΈ Π½Π° ΡΠ΄ΡΠΎΡΠΎ ΠΈ ΠΊΠ΅Ρ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠΈ β ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄Π΅Π½Π° ΠΏΡΠΈ ΠΏΠΎΠΈΡΠΊΠ²Π°Π½Π΅ |
| Available | Π Π΅Π°Π»ΠΈΡΡΠΈΡΠ½Π° ΠΎΡΠ΅Π½ΠΊΠ° Π½Π° RAM, Π½Π°Π»ΠΈΡΠ½Π° Π·Π° Π½ΠΎΠ²ΠΈ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π±Π΅Π· ΡΡΠ°ΠΏΠ²Π°Π½Π΅ |
| Swap Used | ΠΠ°Π½Π½ΠΈ, ΠΈΠ·ΠΌΠ΅ΡΡΠ΅Π½ΠΈ ΠΎΡ RAM ΠΊΡΠΌ swap Π΄ΡΠ»Π° ΠΈΠ»ΠΈ swap ΡΠ°ΠΉΠ»Π° |
| VSZ (Virtual Size) | ΠΠ±ΡΠΎΡΠΎ Π²ΠΈΡΡΡΠ°Π»Π½ΠΎ Π°Π΄ΡΠ΅ΡΠ½ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ, Π·Π°ΠΏΠ°Π·Π΅Π½ΠΎ ΠΎΡ ΠΏΡΠΎΡΠ΅Ρ |
| RSS (Resident Set Size) | Π€ΠΈΠ·ΠΈΡΠ΅ΡΠΊΠ° RAM, Π·Π°Π΅ΡΠ° Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΎΡ ΠΏΡΠΎΡΠ΅Ρ |
| PSS (Proportional Set Size) | RSS, ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°Π½ Π·Π° ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½Π° ΠΏΠ°ΠΌΠ΅Ρ β Π½Π°ΠΉ-ΡΠΎΡΠ½Π°ΡΠ° ΠΌΠ΅ΡΡΠΈΠΊΠ° Π·Π° Π²ΡΠ΅ΠΊΠΈ ΠΏΡΠΎΡΠ΅Ρ |
| USS (Unique Set Size) | ΠΠ°ΠΌΠ΅Ρ, ΠΏΡΠΈΡΠ΅ΠΆΠ°Π²Π°Π½Π° ΠΈΠ·ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΎΡ ΠΏΡΠΎΡΠ΅Ρ; Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄Π΅Π½Π° ΠΏΡΠΈ ΠΈΠ·Π»ΠΈΠ·Π°Π½Π΅ |
ΠΡΠΈΡΠΈΡΠ½ΠΎ ΠΏΡΠΎΠ·ΡΠ΅Π½ΠΈΠ΅: ΠΠΈΠ½Π°Π³ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ ΠΊΠΎΠ»ΠΎΠ½Π°ΡΠ° Available ΠΎΡ free -h, Π° Π½Π΅ ΠΊΠΎΠ»ΠΎΠ½Π°ΡΠ° Free, ΠΊΠΎΠ³Π°ΡΠΎ ΠΎΡΠ΅Π½ΡΠ²Π°ΡΠ΅ Π΄Π°Π»ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΈΠΌΠ° Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ RAM Π·Π° Π½ΠΎΠ²ΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅. ΠΠΎΠ»ΠΎΠ½Π°ΡΠ° Free ΠΈΠ³Π½ΠΎΡΠΈΡΠ° ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅ΠΌΠΈΡ ΠΊΠ΅Ρ, ΠΊΠΎΠ΅ΡΠΎ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΡΠ°Π»ΡΠΈΠ²ΠΈ Π°Π»Π°ΡΠΌΠΈ.
Π€Π°ΠΉΠ»ΡΡ /proc/meminfo: ΠΠ²ΡΠΎΡΠΈΡΠ΅ΡΠ½ΠΈΡΡ ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊ
ΠΡΠ΅ΠΊΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΎΠΏΠΈΡΠ°Π½ Π² ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ, ΡΠ΅ΡΠ΅ ΠΎΡ /proc/meminfo, Π²ΠΈΡΡΡΠ°Π»Π΅Π½ ΡΠ°ΠΉΠ», ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ ΠΎΡ ΡΠ΄ΡΠΎΡΠΎ Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅. ΠΠΈΡΠ΅ΠΊΡΠ½ΠΎΡΠΎ ΠΌΡ ΠΈΠ½ΡΠΏΠ΅ΠΊΡΠΈΡΠ°Π½Π΅ Π²ΠΈ Π΄Π°Π²Π° Π½Π°ΠΉ-Π΄Π΅ΡΠ°ΠΉΠ»Π½ΠΈΡΠ΅ Π½Π°Π»ΠΈΡΠ½ΠΈ Π΄Π°Π½Π½ΠΈ:
cat /proc/meminfoΠΠ»ΡΡΠΎΠ²ΠΈ ΠΏΠΎΠ»Π΅ΡΠ° Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅:
MemTotalβ ΠΎΠ±ΡΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π΅ΠΌΠ° RAMMemFreeβ Π½Π°ΠΏΡΠ»Π½ΠΎ Π½Π΅Π°ΠΊΡΠΈΠ²Π½Π° RAMMemAvailableβ ΠΏΡΠΎΠ³Π½ΠΎΠ·Π½Π° Π½Π°Π»ΠΈΡΠ½Π° RAM Π·Π° Π½ΠΎΠ²ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈBuffersβ ΡΡΡΠΎΠ² ΠΊΠ΅Ρ Π½Π° Π΄ΠΈΡΠΊΠΎΠ²ΠΈ Π±Π»ΠΎΠΊΠΎΠ²Π΅Cachedβ ΠΊΠ΅Ρ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠΈ Π·Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅SwapTotal/SwapFreeβ ΠΊΠ°ΠΏΠ°ΡΠΈΡΠ΅Ρ ΠΈ Π½Π°Π»ΠΈΡΠ½ΠΎΡΡ Π½Π° swapDirtyβ ΠΏΠ°ΠΌΠ΅Ρ, ΡΠ°ΠΊΠ°ΡΠ° Π΄Π° Π±ΡΠ΄Π΅ Π·Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° Π΄ΠΈΡΠΊ (Π²ΠΈΡΠΎΠΊΠΈΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ I/O Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅)HugePages_Total/HugePages_Freeβ ΡΡΠ°ΡΡΡ Π½Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠ³ΡΠΎΠΌΠ½ΠΈ ΡΡΡΠ°Π½ΠΈΡΠΈSlabβ ΠΊΠ΅Ρ Π½Π° ΡΡΡΡΠΊΡΡΡΠΈ ΠΎΡ Π΄Π°Π½Π½ΠΈ Π½Π° ΡΠ΄ΡΠΎΡΠΎ (ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π°ΡΠ°ΡΠ½Π΅ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ΅Π½ΠΈ NFS ΠΈΠ»ΠΈ ΡΡΡΠ²ΡΡΠΈ Π·Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ)
Π Π°Π·Π±ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° /proc/meminfo Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠ°ΡΠ΅ ΠΈΠ·Ρ
ΠΎΠ΄Π° Π½Π° Π²ΡΠ΅ΠΊΠΈ Π΄ΡΡΠ³ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Ρ ΠΏΡΠ»Π΅Π½ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ.
ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° RAM Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° free
free Π΅ Π½Π°ΠΉ-Π±ΡΡΠ·ΠΈΡΡ Π½Π°ΡΠΈΠ½ Π·Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΠ½ΠΈΠΌΠΊΠ° Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π·Π° ΡΡΠ»Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°. Π§Π΅ΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΎΡ /proc/meminfo ΠΈ ΡΠΎΡΠΌΠ°ΡΠΈΡΠ° ΠΈΠ·Ρ
ΠΎΠ΄Π° Π² ΡΠ°Π±Π»ΠΈΡΠ°, ΡΠ΅ΡΠΈΠΌΠ° ΠΎΡ ΡΠΎΠ²Π΅ΠΊ.
ΠΡΠ½ΠΎΠ²Π½Π° ΡΠΏΠΎΡΡΠ΅Π±Π°
freeΠΠ·Ρ ΠΎΠ΄ΡΡ Π΅ Π² ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡΠΈ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅. ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ ΡΠ»Π°Π³ΠΎΠ²Π΅ Π·Π° ΠΏΠΎ-ΡΠ΅ΡΠΈΠΌΠΈ ΡΠΎΡΠΌΠ°ΡΠΈ:
free -h # Human-readable (MB/GB)
free -m # Output in megabytes
free -g # Output in gigabytes
free -s 5 # Refresh every 5 seconds (continuous monitoring)
free -h --si # Use SI units (1000-based) instead of binary (1024-based)ΠΠ±ΡΡΠ½Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΈΡ ΠΈΠ·Ρ ΠΎΠ΄
total used free shared buff/cache available
Mem: 15Gi 4.2Gi 1.1Gi 312Mi 9.8Gi 10.9Gi
Swap: 2.0Gi 128Mi 1.9GiΠ ΡΠΎΠ·ΠΈ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°, ΡΠ΅ ΠΈΠΌΠ° ΡΠ°ΠΌΠΎ 1,1 GB ΡΠ²ΠΎΠ±ΠΎΠ΄Π½Π° ΠΏΠ°ΠΌΠ΅Ρ, Π½ΠΎ 10,9 GB Π²ΡΡΡΠ½ΠΎΡΡ ΡΠ° Π½Π°Π»ΠΈΡΠ½ΠΈ Π·Π° Π½ΠΎΠ²ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠ΄ΡΠΎΡΠΎ ΡΠ΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈ buff/cache ΠΏΡΠΈ ΠΏΠΎΠΈΡΠΊΠ²Π°Π½Π΅. Π’ΠΎΠ²Π° Π΅ Π½Π°ΠΉ-Π²Π°ΠΆΠ½ΠΎΡΠΎ Π½Π΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ Π·Π° ΠΈΠ·Ρ
ΠΎΠ΄Π° Π½Π° free.
ΠΡΠ°Π½ΠΈΡΠ΅Π½ ΡΠ»ΡΡΠ°ΠΉ: ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° swap ΠΊΠ°ΡΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅Π΄ΠΈΡΠ΅Π»Π΅Π½ ΡΠΈΠ³Π½Π°Π»
ΠΠΎΡΠΈ ΠΌΠ°Π»ΠΊΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° swap (Swap: used > 0) Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½ ΡΡΡΠ²ΡΡ Π·Π°ΡΠ»ΡΠΆΠ°Π²Π° ΡΠ°Π·ΡΠ»Π΅Π΄Π²Π°Π½Π΅. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΡΠ΄ΡΠΎΡΠΎ Π²Π΅ΡΠ΅ Π΅ ΡΠ΅ΡΠΈΠ»ΠΎ, ΡΠ΅ Π½ΡΠΊΠΎΠΈ ΡΡΡΠ°Π½ΠΈΡΠΈ Ρ ΠΏΠ°ΠΌΠ΅Ρ ΡΠ΅ ΡΡΡ
ΡΠ°Π½ΡΠ²Π°Ρ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ Π½Π° Π΄ΠΈΡΠΊ, ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ Π² RAM β Π·Π½Π°ΠΊ, ΡΠ΅ ΡΠ°Π±ΠΎΡΠ½ΠΈΡΡ Π½Π°Π±ΠΎΡ Π½Π°Π΄Π²ΠΈΡΠ°Π²Π° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠ°ΡΠ° ΠΏΠ°ΠΌΠ΅Ρ.
ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° RAM Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° top
top ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠΎ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΠΈΠ·Π³Π»Π΅Π΄ Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡΠ΅ ΡΠ΅ΡΡΡΡΠΈ, ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°ΠΉΠΊΠΈ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ Π·Π° CPU ΠΈ ΠΏΠ°ΠΌΠ΅Ρ Ρ ΠΊΠ»Π°ΡΠΈΡΠ°Π½ ΡΠΏΠΈΡΡΠΊ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅.
topΠΠ»ΡΡΠΎΠ²ΠΈ ΠΏΠΎΠ»Π΅ΡΠ° Π·Π° ΠΏΠ°ΠΌΠ΅Ρ Π² top
Π Π³ΠΎΡΠ½Π°ΡΠ° ΡΠ°ΡΡ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π½Π° top Π΄Π²Π° ΡΠ΅Π΄Π° ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ Π·Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°:
MiB Mem : 16384.0 total, 1126.4 free, 4301.2 used, 10956.4 buff/cache
MiB Swap: 2048.0 total, 1920.0 free, 128.0 used. 11200.0 avail MemΠ ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° Ρ ΠΏΡΠΎΡΠ΅ΡΠΈ Π½Π°ΠΉ-ΡΠ΅Π»Π΅Π²Π°Π½ΡΠ½ΠΈΡΠ΅ ΠΊΠΎΠ»ΠΎΠ½ΠΈ Π·Π° ΠΏΠ°ΠΌΠ΅Ρ ΡΠ°:
- VIRT β ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½Π°ΡΠ° ΠΏΠ°ΠΌΠ΅Ρ (Π΅ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ Π½Π° VSZ)
- RES β ΡΠ΅Π·ΠΈΠ΄Π΅Π½ΡΠ½Π° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠ° ΠΏΠ°ΠΌΠ΅Ρ (RSS)
- SHR β ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½Π° ΡΠ°ΡΡ ΠΎΡ ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π½Π° RES
- %MEM β ΠΏΡΠΎΡΠ΅Π½Ρ ΠΎΡ ΠΎΠ±ΡΠ°ΡΠ° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠ° RAM, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π°
ΠΠΎΠ»Π΅Π·Π½ΠΈ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π½Π° top
| ΠΠ»Π°Π²ΠΈΡ | ΠΠ΅ΠΉΡΡΠ²ΠΈΠ΅ |
|---|---|
M | Π‘ΠΎΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ ΠΏΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° (%MEM) |
P | Π‘ΠΎΡΡΠΈΡΠ°Π½Π΅ ΠΏΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° CPU |
k | ΠΡΠ΅ΠΊΡΠ°ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΡΠ΅Ρ ΠΏΠΎ PID |
1 | ΠΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ Π·Π° Π²ΡΡΠΊΠΎ CPU ΡΠ΄ΡΠΎ |
f | ΠΠΎΠ±Π°Π²ΡΠ½Π΅/ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ»Π΅ΡΠ° Π·Π° ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ |
W | ΠΠ°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° ΡΠ΅ΠΊΡΡΠ°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ |
ΠΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° top Π½Π΅ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎ
ΠΠ° ΡΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ ΠΈ Π·Π°ΠΏΠΈΡ Π½Π° ΠΆΡΡΠ½Π°Π»ΠΈ, ΠΈΠ·ΠΏΡΠ»Π½Π΅ΡΠ΅ top Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅Π½ ΡΠ΅ΠΆΠΈΠΌ:
top -b -n 1 | head -30Π’ΠΎΠ²Π° ΠΈΠ·Π²Π΅ΠΆΠ΄Π° Π΅Π΄ΠΈΠ½ΠΈΡΠ½Π° ΡΠ½ΠΈΠΌΠΊΠ° β ΠΏΠΎΠ»Π΅Π·Π½Π° Π·Π° ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ Π·Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³, Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° cron.
ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° RAM Ρ htop
htop Π΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½, Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° ncurses ΠΏΡΠ΅Π³Π»Π΅Π΄ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΈ, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Ρ ΡΡΡΠΈΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΊΠ°ΡΠΎ top ΡΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎ-ΡΠ΄ΠΎΠ±Π΅Π½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ. ΠΠ΅ Π΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈ.
ΠΠ½ΡΡΠ°Π»Π°ΡΠΈΡ
# Debian / Ubuntu
apt-get install htop
# RHEL / CentOS / AlmaLinux / Rocky Linux
yum install htop
# or on newer versions:
dnf install htop
# Alpine Linux
apk add htopΠΠ°ΠΊΠ²ΠΎ Π΄ΠΎΠ±Π°Π²Ρ htop ΡΠΏΡΡΠΌΠΎ top
- Π¦Π²Π΅ΡΠΎΠ²ΠΎ ΠΊΠΎΠ΄ΠΈΡΠ°Π½ΠΈ Π»Π΅Π½ΡΠΈ Π·Π° ΠΏΠ°ΠΌΠ΅Ρ, ΡΠ°Π·Π³ΡΠ°Π½ΠΈΡΠ°Π²Π°ΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π°ΡΠ° ΠΏΠ°ΠΌΠ΅Ρ, Π±ΡΡΠ΅ΡΠΈΡΠ΅ ΠΈ ΠΊΠ΅ΡΠ° Ρ Π΅Π΄ΠΈΠ½ ΠΏΠΎΠ³Π»Π΅Π΄
- Π₯ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»Π΅Π½ ΠΈ Π²Π΅ΡΡΠΈΠΊΠ°Π»Π΅Π½ ΠΈΠ·Π³Π»Π΅Π΄ Π½Π° Π΄ΡΡΠ²ΠΎΡΠΎ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ (
F5) - ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΌΠΈΡΠΊΠ° Π·Π° ΠΊΠ»ΠΈΠΊΠ²Π°Π½Π΅ ΠΈ ΠΏΡΠ΅Π²ΡΡΡΠ°Π½Π΅
- ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½ ΠΈΠ·Π±ΠΎΡ Π·Π° Π³ΡΡΠΏΠΎΠ²ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΈ
- ΠΠ³ΡΠ°Π΄Π΅Π½ΠΎ ΡΡΡΡΠ΅Π½Π΅ (
F3) ΠΈ ΡΠΈΠ»ΡΡΠΈΡΠ°Π½Π΅ (F4) Π±Π΅Π· Π·Π°ΠΏΠΎΠΌΠ½ΡΠ½Π΅ Π½Π° ΠΊΠ»Π°Π²ΠΈΡΠ½ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ - ΠΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° Π½Π°Π»ΠΈΡΠ½Π°ΡΠ° ΠΏΠ°ΠΌΠ΅Ρ Π½Π° Π²ΠΈΠ΄Π½ΠΎ ΠΌΡΡΡΠΎ Π² Π·Π°Π³Π»Π°Π²ΠΊΠ°ΡΠ°
ΠΠ΅Π³Π΅Π½Π΄Π° Π½Π° ΡΠ²Π΅ΡΠΎΠ²Π΅ΡΠ΅ Π½Π° Π»Π΅Π½ΡΠ°ΡΠ° Π·Π° ΠΏΠ°ΠΌΠ΅Ρ Π² htop
| Π¦Π²ΡΡ | ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ |
|---|---|
| ΠΠ΅Π»Π΅Π½ | ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° ΠΏΠ°ΠΌΠ΅Ρ (ΠΏΡΠΎΡΠ΅ΡΠΈ) |
| Π‘ΠΈΠ½ | ΠΡΡΠ΅ΡΠ΅Π½ ΠΊΠ΅Ρ |
| ΠΡΠ»Ρ/ΠΡΠ°Π½ΠΆΠ΅Π² | ΠΠ΅Ρ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠΈ |
| Π§Π΅ΡΠ²Π΅Π½ | ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ swap |
ΠΡΠΎΡΠ΅ΡΠΈΠΎΠ½Π°Π»Π΅Π½ ΡΡΠ²Π΅Ρ: Π htop, Π½Π°ΡΠΈΡΠ½Π΅ΡΠ΅ F2 (ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ) > ΠΠΏΡΠΈΠΈ Π·Π° ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ > Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΠΉΡΠ΅ βΠΠΎΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΡΠ΅ΡΡΠΎΡΠ°ΡΠ° Π½Π° CPUβ ΠΈ βΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎ CPU Π²ΡΠ΅ΠΌΠ΅β Π·Π° ΠΏΠΎ-ΠΏΡΠ»Π½Π° ΠΊΠ°ΡΡΠΈΠ½Π° Π·Π°Π΅Π΄Π½ΠΎ Ρ Π΄Π°Π½Π½ΠΈΡΠ΅ Π·Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°.
ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° RAM Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° ps
ps (ΡΡΠ°ΡΡΡ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ°) Π·Π°ΡΠ²ΡΠ²Π° ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ Π½Π° ΡΠ΄ΡΠΎΡΠΎ ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΠΎΡΡΠΈΡΠ°Π½ ΠΈ ΡΠΈΠ»ΡΡΠΈΡΠ°Π½ Π·Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°Π½Π΅ Π½Π° Π½Π°ΠΉ-Π³ΠΎΠ»Π΅ΠΌΠΈΡΠ΅ ΠΊΠΎΠ½ΡΡΠΌΠ°ΡΠΎΡΠΈ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ Π² Π΄Π°Π΄Π΅Π½ ΠΌΠΎΠΌΠ΅Π½Ρ.
Π‘ΠΎΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ ΠΏΠΎ ΠΊΠΎΠ½ΡΡΠΌΠ°ΡΠΈΡ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ
ps aux --sort=-%memΠΠ±ΡΡΠ½Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡΠ΅ ΠΊΠΎΠ»ΠΎΠ½ΠΈ
| ΠΠΎΠ»ΠΎΠ½Π° | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
|---|---|
USER | Π‘ΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΠΊ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ° |
PID | ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ° |
%CPU | ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° CPU ΠΎΡ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ° |
%MEM | ΠΡΠΎΡΠ΅Π½Ρ ΠΎΡ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π°ΡΠ° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠ° RAM (RSS / MemTotal) |
VSZ | Π Π°Π·ΠΌΠ΅Ρ Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½Π°ΡΠ° ΠΏΠ°ΠΌΠ΅Ρ Π² KB |
RSS | Π Π°Π·ΠΌΠ΅Ρ Π½Π° ΡΠ΅Π·ΠΈΠ΄Π΅Π½ΡΠ½ΠΈΡ Π½Π°Π±ΠΎΡ Π² KB |
TTY | Π£ΠΏΡΠ°Π²Π»ΡΠ²Π°Ρ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» |
STAT | Π‘ΡΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ° (S=ΡΠΏΡΡ, R=ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ ΡΠ΅, Z=Π·ΠΎΠΌΠ±ΠΈ, D=Π½Π΅ΠΏΡΠΈΠ΅ΠΊΡΡΠ²Π°Π΅ΠΌΠΎ ΡΠ°ΠΊΠ°Π½Π΅) |
START | Π§Π°Ρ Π½Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ° |
TIME | ΠΡΠΌΡΠ»Π°ΡΠΈΠ²Π½ΠΎ ΠΊΠΎΠ½ΡΡΠΌΠΈΡΠ°Π½ΠΎ CPU Π²ΡΠ΅ΠΌΠ΅ |
COMMAND | ΠΠΌΠ΅ ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° |
ΠΡΠ°ΠΊΡΠΈΡΠ½ΠΈ Π΅Π΄Π½ΠΎΡΠ΅Π΄ΠΎΠ²ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ
ΠΠΎΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΡΠΎΠΏ 10 ΠΏΡΠΎΡΠ΅ΡΠΈ, ΠΊΠΎΠ½ΡΡΠΌΠΈΡΠ°ΡΠΈ ΠΏΠ°ΠΌΠ΅Ρ, Ρ ΡΠ΅ΡΠΈΠΌ ΠΎΡ ΡΠΎΠ²Π΅ΠΊ ΠΈΠ·Ρ ΠΎΠ΄:
ps aux --sort=-%mem | head -11ΠΠΎΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π·Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ ΠΈΠΌΠ΅ Π½Π° ΠΏΡΠΎΡΠ΅Ρ (Π½Π°ΠΏΡ. Apache):
ps aux | grep apache2 | awk '{sum += $6} END {print sum/1024 " MB"}'Π’ΠΎΠ²Π° ΡΡΠΌΠΈΡΠ° RSS ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΡΠ°Π±ΠΎΡΠ½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ Π½Π° apache2 β ΠΊΡΠΈΡΠΈΡΠ½ΠΎ Π·Π° ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΈΡΡΠΈΠ½ΡΠΊΠΈΡ ΠΎΡΠΏΠ΅ΡΠ°ΡΡΠΊ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠΏΡΠΎΡΠ΅ΡΠ½ΠΈ ΡΠ΅Π± ΡΡΡΠ²ΡΡΠΈ.
ΠΠ°ΠΆΠ½Π° Π·Π°Π±Π΅Π»Π΅ΠΆΠΊΠ°: ps ΠΏΠΎΠΊΠ°Π·Π²Π° RSS, ΠΊΠΎΠ΅ΡΠΎ Π΄Π²ΠΎΠΉΠ½ΠΎ Π±ΡΠΎΠΈ ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½ΠΈΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΠΊΠΎ 20 ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊΠ° Π½Π° Apache Π²ΡΠ΅ΠΊΠΈ ΠΊΠ°ΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ° ΡΡΡΠ°ΡΠ° 50 MB ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ps ΠΎΡΡΠΈΡΠ° 1 000 MB ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π·Π° ΡΡΡ
, Π΄ΠΎΠΊΠ°ΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π½Π°ΡΠ° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠ° ΡΠ΅Π½Π° Π΅ ΡΠ°ΠΌΠΎ 50 MB. ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ smem Π·Π° ΡΠΎΡΠ½ΠΎ ΠΎΡΡΠΈΡΠ°Π½Π΅.
ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° RAM Ρ smem
smem Π΅ Π½Π°ΠΉ-ΡΠΎΡΠ½ΠΈΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π° ΠΎΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π·Π° Π²ΡΠ΅ΠΊΠΈ ΠΏΡΠΎΡΠ΅Ρ, Π½Π°Π»ΠΈΡΠ΅Π½ Π² Linux, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΎΡΡΠΈΡΠ° PSS (ΠΡΠΎΠΏΠΎΡΡΠΈΠΎΠ½Π°Π»Π΅Π½ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° Π½Π°Π±ΠΎΡΠ°) β ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½Π°ΡΠ° ΠΏΠ°ΠΌΠ΅Ρ ΡΠ΅ ΡΠ°Π·Π΄Π΅Π»Ρ ΠΏΡΠΎΠΏΠΎΡΡΠΈΠΎΠ½Π°Π»Π½ΠΎ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ, ΠΊΠΎΠΈΡΠΎ Ρ ΠΊΠ°ΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ°Ρ, Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡΠ°ΠΉΠΊΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ Π΄Π²ΠΎΠΉΠ½ΠΎΡΠΎ Π±ΡΠΎΠ΅Π½Π΅, ΠΏΡΠΈΡΡΡ Π½Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈΡΠ΅, Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° RSS.
ΠΠ½ΡΡΠ°Π»Π°ΡΠΈΡ
# Ubuntu / Debian
apt-get install smem
# CentOS / RHEL 7
yum install smem
# RHEL 8+ / AlmaLinux / Rocky Linux
dnf install smem
# Alternatively, install via pip
pip install smemΠΡΠ½ΠΎΠ²Π½Π° ΡΠΏΠΎΡΡΠ΅Π±Π°
smemΠΠΎΠ»Π΅Π·Π½ΠΈ ΠΎΠΏΡΠΈΠΈ Π½Π° smem
smem -r # Sort by RSS (descending)
smem -s pss -r # Sort by PSS (most accurate, descending)
smem -u # Aggregate by user
smem -m # Show system-wide memory map
smem -p # Show percentages instead of raw KB
smem -k # Show values in KB
smem -t # Show totals row
smem --pie name # Generate a pie chart (requires matplotlib)
smem -P apache2 # Filter by process name patternPSS ΡΡΠ΅ΡΡ RSS: ΠΠ°ΡΠΎ Π΅ Π²Π°ΠΆΠ½ΠΎ
Π Π°Π·Π³Π»Π΅Π΄Π°ΠΉΡΠ΅ ΡΡΡΠ²ΡΡ, ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ 10 ΡΠ°Π±ΠΎΡΠ½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° Node.js, Π²ΡΠ΅ΠΊΠΈ ΡΠΏΠΎΠ΄Π΅Π»ΡΡ 100 MB Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π½Π° V8 runtime:
- RSS Π½Π° ΠΏΡΠΎΡΠ΅Ρ: 200 MB (100 MB ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½Π° + 100 MB ΡΠ°ΡΡΠ½Π°)
- ΠΠ±ΡΠΎ ΠΎΡΡΠ΅ΡΠ΅Π½ RSS: 2 000 MB
- PSS Π½Π° ΠΏΡΠΎΡΠ΅Ρ: 110 MB (10 MB Π΄ΡΠ» ΠΎΡ 100 MB + 100 MB ΡΠ°ΡΡΠ½Π°)
- ΠΠ±ΡΠΎ ΠΎΡΡΠ΅ΡΠ΅Π½ PSS: 1 100 MB
- ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠ° RAM: 1 100 MB
RSS Π½Π°Π΄ΡΠ΅Π½ΡΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Ρ ΠΏΠΎΡΡΠΈ 2 ΠΏΡΡΠΈ Π² ΡΠΎΠ·ΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠΉ. ΠΡΠΈ Π²Π·Π΅ΠΌΠ°Π½Π΅ Π½Π° ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π° ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅ Π½Π° Dedicated ΡΡΡΠ²ΡΡ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° PSS ΠΎΡ smem Π²ΠΈ Π΄Π°Π²Π° ΠΈΡΡΠΈΠ½ΡΠΊΠ°ΡΠ° ΠΊΠ°ΡΡΠΈΠ½Π°.
ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° RAM Ρ vmstat
vmstat (ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ Π·Π° Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΏΠ°ΠΌΠ΅Ρ) ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΏΠΎ-ΡΠΈΡΠΎΠΊ ΠΈΠ·Π³Π»Π΅Π΄ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°, swap, I/O ΠΈ CPU Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΠ°, ΠΊΠΎΠ΅ΡΠΎ Π³ΠΎ ΠΏΡΠ°Π²ΠΈ ΠΈΠ΄Π΅Π°Π»Π΅Π½ Π·Π° Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΡΠΈΡΠ°Π½Π΅ Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π² ΡΡΠ»Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°, Π° Π½Π΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ.
vmstat 2 10 # Report every 2 seconds, 10 timesΠΠ»ΡΡΠΎΠ²ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΈ Π·Π° ΠΏΠ°ΠΌΠ΅Ρ
| ΠΠΎΠ»ΠΎΠ½Π° | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
|---|---|
swpd | ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΏΠ°ΠΌΠ΅Ρ (swap) |
free | ΠΠ΅Π°ΠΊΡΠΈΠ²Π½Π° ΠΏΠ°ΠΌΠ΅Ρ |
buff | ΠΠ°ΠΌΠ΅Ρ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° ΠΊΠ°ΡΠΎ Π±ΡΡΠ΅ΡΠΈ |
cache | ΠΠ°ΠΌΠ΅Ρ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° ΠΊΠ°ΡΠΎ ΠΊΠ΅Ρ |
si | ΠΠ°ΠΌΠ΅Ρ, ΡΡΠ°ΠΏΠ½Π°ΡΠ° ΠΎΡ Π΄ΠΈΡΠΊΠ° (KB/s) |
so | ΠΠ°ΠΌΠ΅Ρ, ΡΡΠ°ΠΏΠ½Π°ΡΠ° Π½Π° Π΄ΠΈΡΠΊΠ° (KB/s) |
ΠΡΠΈΡΠΈΡΠ΅Π½ ΡΠΈΠ³Π½Π°Π»: ΠΠ΅Π½ΡΠ»Π΅Π²ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π½Π° si (ΡΡΠ°ΠΏ-Π²Ρ
ΠΎΠ΄) ΠΈ so (ΡΡΠ°ΠΏ-ΠΈΠ·Ρ
ΠΎΠ΄) Π² ΡΠ°Π±ΠΎΡΠ΅Ρ ΠΏΠΎΡΠΎΠΊ Π½Π° vmstat ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΡΡΠ°ΠΏΠ²Π°Π½Π΅ β ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»Π΅Π½ Π·Π½Π°ΠΊ Π·Π° ΠΈΠ·ΡΠ΅ΡΠΏΠ²Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°. ΠΠΎΡΠΈ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΈ ΠΏΠΈΠΊΠΎΠ²Π΅ Π² so ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΏΡΠΈΡΠΈΠ½ΡΡ ΠΏΠΈΠΊΠΎΠ²Π΅ Π½Π° Π»Π°ΡΠ΅Π½ΡΠ½ΠΎΡΡ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΎΡ ΡΡΠΎΡΠΈΡΠΈ ΠΌΠΈΠ»ΠΈΡΠ΅ΠΊΡΠ½Π΄ΠΈ.
ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° RAM Ρ sar (Π Π΅ΠΏΠΎΡΡΠ΅Ρ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½Π°ΡΠ° Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡ)
sar ΠΎΡ ΠΏΠ°ΠΊΠ΅ΡΠ° sysstat Π·Π°ΠΏΠΈΡΠ²Π° ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈ Π΄Π°Π½Π½ΠΈ Π·Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΠΉΠΊΠΈ ΡΠ΅ΡΡΠΎΡΠΏΠ΅ΠΊΡΠΈΠ²Π΅Π½ Π°Π½Π°Π»ΠΈΠ· β Π½Π΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈΡΠ΅ Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡ.
ΠΠ½ΡΡΠ°Π»Π°ΡΠΈΡ
apt-get install sysstat # Debian/Ubuntu
yum install sysstat # CentOS/RHELΠ£ΠΏΠΎΡΡΠ΅Π±Π°
sar -r 1 5 # Memory stats every 1 second, 5 times
sar -r -f /var/log/sysstat/sa$(date +%d) # Today's historical data
sar -S 1 5 # Swap statisticssar Π΅ Π±Π΅Π·ΡΠ΅Π½Π΅Π½ Π·Π° ΠΎΡΠ³ΠΎΠ²Π°ΡΡΠ½Π΅ Π½Π° Π²ΡΠΏΡΠΎΡΠΈ ΠΊΠ°ΡΠΎ βΠΠΌΠ°ΡΠ΅ Π»ΠΈ ΠΏΠΈΠΊ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π² 3 ΡΠ°ΡΠ° ΡΡΡΡΠΈΠ½ΡΠ°, ΠΏΡΠΈΡΠΈΠ½ΠΈΠ» ΡΡΠΈΠ²Π° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ?β β Π²ΡΠΏΡΠΎΡ, Π½Π° ΠΊΠΎΠΉΡΠΎ Π½ΠΈΠΊΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈ ΡΠ»Π΅Π΄ ΡΠ°ΠΊΡΠ°.
ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° RAM Ρ /proc/<PID>/status ΠΈ /proc/<PID>/smaps
ΠΠ° Π·Π°Π΄ΡΠ»Π±ΠΎΡΠ΅Π½ Π°Π½Π°Π»ΠΈΠ· Π½Π° Π²ΡΠ΅ΠΊΠΈ ΠΏΡΠΎΡΠ΅Ρ, ΡΠ΄ΡΠΎΡΠΎ ΠΈΠ·Π»Π°Π³Π° ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΈ ΠΊΠ°ΡΡΠΈ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π² /proc.
ΠΡΡΠ·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π·Π° Π²ΡΠ΅ΠΊΠΈ ΠΏΡΠΎΡΠ΅Ρ
cat /proc/$(pgrep nginx | head -1)/status | grep -E "VmRSS|VmPeak|VmSize|VmSwap"ΠΡΠΈΠΌΠ΅Ρ Π·Π° ΠΈΠ·Ρ ΠΎΠ΄:
VmPeak: 512340 kB
VmSize: 498120 kB
VmRSS: 102400 kB
VmSwap: 0 kBVmPeakβ ΠΏΠΈΠΊΠΎΠ² ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½Π°ΡΠ° ΠΏΠ°ΠΌΠ΅Ρ, Π΄ΠΎΡΡΠΈΠ³Π½Π°Ρ Π½ΡΠΊΠΎΠ³Π° ΠΎΡ ΡΠΎΠ·ΠΈ ΠΏΡΠΎΡΠ΅ΡVmRSSβ ΡΠ΅ΠΊΡΡ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° ΡΠ΅Π·ΠΈΠ΄Π΅Π½ΡΠ½ΠΈΡ Π½Π°Π±ΠΎΡVmSwapβ ΠΊΠΎΠ»ΠΊΠΎ ΠΎΡ ΡΠΎΠ·ΠΈ ΠΏΡΠΎΡΠ΅Ρ Π΅ ΡΡΠ°ΠΏΠ½Π°ΡΠΎ
ΠΠΎΠ΄ΡΠΎΠ±Π½Π° ΠΊΠ°ΡΡΠ° Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Ρ smaps
cat /proc/$(pgrep mysql | head -1)/smaps | grep -E "^(Size|Rss|Pss|Shared|Private)"Π’ΠΎΠ²Π° ΡΠ°Π·ΠΊΡΠΈΠ²Π° Π²ΡΡΠΊΠΎ ΠΊΠ°ΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° (heap, stack, ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΈ ΠΊΠ°ΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ°Π½ΠΈΡ) Ρ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»Π½ΠΈ RSS ΠΈ PSS ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ β Π½Π°ΠΉ-Π΄Π΅ΡΠ°ΠΉΠ»Π½ΠΈΡΡ ΠΈΠ·Π³Π»Π΅Π΄ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°, Π½Π°Π»ΠΈΡΠ΅Π½ Π±Π΅Π· ΠΏΡΠΎΡΠ°ΠΉΠ»ΡΡ.
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈΡΠ΅: ΠΠ·Π±ΠΎΡ Π½Π° ΠΏΡΠ°Π²ΠΈΠ»Π½Π°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π°
| ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ | ΠΠ±Ρ Π²Π°Ρ | Π’ΠΈΠΏ ΠΌΠ΅ΡΡΠΈΠΊΠ° | Π ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ | ΠΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈ | Π’ΠΎΡΠ½ΠΎΡΡ Π½Π° ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½Π° ΠΏΠ°ΠΌΠ΅Ρ | ΠΠ°ΠΉ-Π΄ΠΎΠ±ΡΡ ΡΠ»ΡΡΠ°ΠΉ Π½Π° ΡΠΏΠΎΡΡΠ΅Π±Π° |
|---|---|---|---|---|---|---|
free | ΠΠ° ΡΡΠ»Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° | Total/Available | ΠΠ° | ΠΠ΅ | Π/Π | ΠΡΡΠ·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π·Π΄ΡΠ°Π²Π΅ΡΠΎ |
top | ΠΠ° Π²ΡΠ΅ΠΊΠΈ ΠΏΡΠΎΡΠ΅Ρ + ΡΠΈΡΡΠ΅ΠΌΠ° | RSS, %MEM | ΠΠ° | ΠΠ΅ | ΠΠΈΡΠΊΠ° (RSS) | ΠΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π΅Π½ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ |
htop | ΠΠ° Π²ΡΠ΅ΠΊΠΈ ΠΏΡΠΎΡΠ΅Ρ + ΡΠΈΡΡΠ΅ΠΌΠ° | RSS, %MEM | ΠΠ° | ΠΠ΅ | ΠΠΈΡΠΊΠ° (RSS) | ΠΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π΅Π½ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ (ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π½) |
ps | ΠΠ° Π²ΡΠ΅ΠΊΠΈ ΠΏΡΠΎΡΠ΅Ρ | RSS, VSZ | Π‘Π½ΠΈΠΌΠΊΠ° | ΠΠ΅ | ΠΠΈΡΠΊΠ° (RSS) | Π‘ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅, ΡΠΎΡΡΠΈΡΠ°Π½Π΅ |
smem | ΠΠ° Π²ΡΠ΅ΠΊΠΈ ΠΏΡΠΎΡΠ΅Ρ | PSS, USS, RSS | Π‘Π½ΠΈΠΌΠΊΠ° | ΠΠ΅ | ΠΠΈΡΠΎΠΊΠ° (PSS) | Π’ΠΎΡΠ½ΠΎ ΠΎΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° |
vmstat | ΠΠ° ΡΡΠ»Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° | Swap I/O, free | ΠΠ° | ΠΠ΅ | Π/Π | ΠΠΈΠ°Π³Π½ΠΎΡΡΠΈΡΠΈΡΠ°Π½Π΅ Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ Π½Π° swap |
sar | ΠΠ° ΡΡΠ»Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° | ΠΡΠΈΡΠΊΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈ | ΠΠ΅ | ΠΠ° | Π/Π | ΠΠ½Π°Π»ΠΈΠ· ΡΠ»Π΅Π΄ ΠΈΠ½ΡΠΈΠ΄Π΅Π½Ρ |
/proc/meminfo | ΠΠ° ΡΡΠ»Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° | ΠΠ΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π½Π° ΡΠ΄ΡΠΎΡΠΎ | ΠΠ° | ΠΠ΅ | Π/Π | Π‘ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ |
/proc/PID/smaps | ΠΠ° Π²ΡΠ΅ΠΊΠΈ ΠΏΡΠΎΡΠ΅Ρ | ΠΡΠ»Π½Π° ΠΊΠ°ΡΡΠ° | ΠΠ° | ΠΠ΅ | ΠΠΈΡΠΎΠΊΠ° | ΠΠ°Π΄ΡΠ»Π±ΠΎΡΠ΅Π½ΠΎ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΈ |
ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ°Π±ΠΎΡΠ½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ Π·Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³
Π Π°Π±ΠΎΡΠ΅Π½ ΠΏΡΠΎΡΠ΅Ρ 1: ΠΡΡΠ·Π° ΡΡΠΈΠ°ΠΆ (ΠΏΠΎΠ΄ 60 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ)
free -h # Step 1: Is Available memory critically low?
vmstat 1 5 # Step 2: Is active swapping occurring?
ps aux --sort=-%mem | head -15 # Step 3: Which processes are the top consumers?Π Π°Π±ΠΎΡΠ΅Π½ ΠΏΡΠΎΡΠ΅Ρ 2: ΠΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ
# Watch a specific process's RSS grow over time
watch -n 5 'ps -o pid,rss,vsz,comm -p $(pgrep your_app)'
# Or use smem with repeated snapshots
while true; do smem -P your_app -t; sleep 30; doneΠ Π°Π±ΠΎΡΠ΅Π½ ΠΏΡΠΎΡΠ΅Ρ 3: ΠΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈ Π°Π½Π°Π»ΠΈΠ· ΡΠ»Π΅Π΄ ΠΈΠ½ΡΠΈΠ΄Π΅Π½Ρ
sar -r -f /var/log/sysstat/sa$(date +%d --date='yesterday')Π Π°Π±ΠΎΡΠ΅Π½ ΠΏΡΠΎΡΠ΅Ρ 4: Π‘ΠΊΡΠΈΠΏΡ Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Π½ΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅
#!/bin/bash
THRESHOLD=90
USED_PCT=$(free | awk '/^Mem:/ {printf "%.0f", $3/$2 * 100}')
if [ "$USED_PCT" -gt "$THRESHOLD" ]; then
echo "ALERT: RAM usage at ${USED_PCT}% on $(hostname)" | mail -s "Memory Alert" admin@example.com
fiΠ’ΠΎΠ·ΠΈ ΡΠΊΡΠΈΠΏΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΠΎΡΡΠ°Π²Π΅Π½ Π² cron Π·Π°Π΄Π°ΡΠ° Π·Π° Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Π½ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ β ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡ Π½Π° Π²ΡΠ΅ΠΊΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½ VPS Ρ cPanel ΠΈΠ»ΠΈ ΡΡΡΠ²ΡΡ Π½Π° Π³ΠΎΠ»ΠΎ ΠΆΠ΅Π»ΡΠ·ΠΎ.
Π Π°Π·ΡΠΈΡΠ΅Π½ΠΎ: ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π·Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π½Π° ΡΠ΄ΡΠΎΡΠΎ
Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΡΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°Π»ΠΈ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°, ΡΠ΅Π·ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π½Π° sysctl Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π²Π»ΠΈΡΡΡ Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΡΠΎ:
# View current swappiness (default: 60)
sysctl vm.swappiness
# Reduce swap tendency (recommended for databases: 10)
sysctl -w vm.swappiness=10
# Increase dirty page write-back aggressiveness
sysctl -w vm.dirty_ratio=15
sysctl -w vm.dirty_background_ratio=5
# Drop page cache manually (use with caution on production)
sync; echo 3 > /proc/sys/vm/drop_cachesΠΠ±ΡΡΠ½Π΅Π½ΠΈΠ΅ Π½Π° vm.swappiness: Π‘ΡΠΎΠΉΠ½ΠΎΡΡ ΠΎΡ 60 ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΡΠ΄ΡΠΎΡΠΎ ΡΠ΅ Π·Π°ΠΏΠΎΡΠ½Π΅ ΡΡΠ°ΠΏΠ²Π°Π½Π΅, ΠΊΠΎΠ³Π°ΡΠΎ RAM Π΅ 40% ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π°. ΠΠ° ΡΡΡΠ²ΡΡΠΈ Π·Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ (MySQL, PostgreSQL, Redis), Π·Π°Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° 10 ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° Π΄Π°Π½Π½ΠΈΡΠ΅ Π² RAM ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π΄ΡΠ»Π³ΠΎ, Π΄ΡΠ°ΡΡΠΈΡΠ½ΠΎ Π½Π°ΠΌΠ°Π»ΡΠ²Π°ΠΉΠΊΠΈ I/O Π»Π°ΡΠ΅Π½ΡΠ½ΠΎΡΡΡΠ°. ΠΠ° Π½Π°ΡΡΠΎΠ»Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΈΠ»ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π° RAM, ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π΅ ΠΏΠΎ-ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠ°.
Π§Π΅ΡΡΠΈ ΠΊΠ»ΠΎΠΏΠΊΠΈ ΠΈ ΠΏΠΎΠ³ΡΠ΅ΡΠ½ΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΠΈ
ΠΠ»ΠΎΠΏΠΊΠ° 1: ΠΠ°Π½ΠΈΠΊΠ° Π·Π°ΡΠ°Π΄ΠΈ Π½ΠΈΡΠΊΠ° βΡΠ²ΠΎΠ±ΠΎΠ΄Π½Π°β ΠΏΠ°ΠΌΠ΅Ρ
ΠΠ°ΠΊΡΠΎ Π±Π΅ΡΠ΅ ΠΎΠ±ΡΡΠ½Π΅Π½ΠΎ ΠΏΠΎ-ΡΠ°Π½ΠΎ, Linux ΡΠΌΠΈΡΠ»Π΅Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ²ΠΎΠ±ΠΎΠ΄Π½Π°ΡΠ° RAM ΠΊΠ°ΡΠΎ ΠΊΠ΅Ρ. Π‘ΠΈΡΡΠ΅ΠΌΠ° Ρ 200 MB ΡΠ²ΠΎΠ±ΠΎΠ΄Π½Π°, Π½ΠΎ 8 GB Π½Π°Π»ΠΈΡΠ½Π° ΠΏΠ°ΠΌΠ΅Ρ Π΅ Π·Π΄ΡΠ°Π²Π°. ΠΠΈΠ½Π°Π³ΠΈ ΡΠ΅ΡΠ΅ΡΠ΅ ΠΊΠΎΠ»ΠΎΠ½Π°ΡΠ° Available.
ΠΠ»ΠΎΠΏΠΊΠ° 2: Π‘ΡΠΌΠΈΡΠ°Π½Π΅ Π½Π° RSS Π·Π° ΠΎΡΠ΅Π½ΠΊΠ° Π½Π° ΠΎΠ±ΡΠΎΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°
Π‘ΡΠΌΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° RSS ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° ps Π·Π° Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠ΅ Π½Π°Π΄Π²ΠΈΡΠΈ ΠΎΠ±ΡΠ°ΡΠ° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠ° RAM ΠΏΠΎΡΠ°Π΄ΠΈ Π΄Π²ΠΎΠΉΠ½ΠΎΡΠΎ Π±ΡΠΎΠ΅Π½Π΅ Π½Π° ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½ΠΈΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ smem -t Π·Π° ΡΠΎΡΠ½Π° ΡΠΈΡΡΠ΅ΠΌΠ½Π° ΡΡΠΌΠ°.
ΠΠ»ΠΎΠΏΠΊΠ° 3: ΠΠ³Π½ΠΎΡΠΈΡΠ°Π½Π΅ Π½Π° Slab ΠΊΠ΅ΡΠ°
ΠΠ° Π½Π°ΡΠΎΠ²Π°ΡΠ΅Π½ΠΈ NFS ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ ΠΈΠ»ΠΈ ΡΡΡΠ²ΡΡΠΈ Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°Π»ΠΊΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, Slab ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅Π»ΡΡ Π½Π° ΡΠ΄ΡΠΎΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΊΠΎΠ½ΡΡΠΌΠΈΡΠ° Π³ΠΈΠ³Π°Π±Π°ΠΉΡΠΈ RAM. ΠΡΠΎΠ²Π΅ΡΠ΅ΡΠ΅ cat /proc/meminfo | grep Slab β ΡΠ°Π·ΠΈ ΠΏΠ°ΠΌΠ΅Ρ Π΅ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅ΠΌΠ°, Π½ΠΎ Π½Π΅ ΡΠ΅ ΠΏΠΎΡΠ²ΡΠ²Π° Π² ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈΡΠ΅ Π½Π° Π½ΠΈΠ²ΠΎ ΠΏΡΠΎΡΠ΅Ρ.
ΠΠ»ΠΎΠΏΠΊΠ° 4: ΠΠ±ΡΡΠΊΠ²Π°Π½Π΅ Π½Π° VSZ Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΎΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°
Java ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠΊΠ°Π·Π²Π° 4 GB VSZ, Π½ΠΎ ΡΠ°ΠΌΠΎ 512 MB RSS. VSZ Π²ΠΊΠ»ΡΡΠ²Π° ΠΊΠ°ΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ°Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Ρ ΠΏΠ°ΠΌΠ΅Ρ, Π·Π°ΠΏΠ°Π·Π΅Π½, Π½ΠΎ Π½Π΅ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ heap ΠΈ ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ β ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΎΡ ΠΊΠΎΠΈΡΠΎ Π½ΠΈΠΊΠΎΠ³Π° Π½Π΅ ΡΠ΅ Π·Π°ΡΠ΅ΠΆΠ΄Π°Ρ Π² ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠ°ΡΠ° RAM.
ΠΠ»ΠΎΠΏΠΊΠ° 5: ΠΡΠ΅Π½Π΅Π±ΡΠ΅Π³Π²Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΏΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½ΠΈΡ
ΠΡΡΡΠ΅ Π² Docker ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, free ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΎΠ±ΡΠ°ΡΠ° ΠΏΠ°ΠΌΠ΅Ρ Π½Π° Ρ
ΠΎΡΡΠ°, Π° Π½Π΅ Π»ΠΈΠΌΠΈΡΠ° Π½Π° cgroup Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°. ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ cat /sys/fs/cgroup/memory/memory.usage_in_bytes ΠΈ cat /sys/fs/cgroup/memory/memory.limit_in_bytes Π·Π° ΡΠΎΡΠ½ΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π½Π° Π½ΠΈΠ²ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ.
ΠΠ°ΡΡΡΠΎΠΉΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΡΡΠΎΡΠ½Π΅Π½ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π½Π° RAM
ΠΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½ΠΈ ΡΡΠ΅Π΄ΠΈ, ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡΠ΅ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ ΡΠ° Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΈ. Π Π°Π·Π³Π»Π΅Π΄Π°ΠΉΡΠ΅ ΡΠ΅Π·ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈ Π·Π° Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠ° Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ:
sysstatΡ cron: ΠΠΊΡΠΈΠ²ΠΈΡΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈ Π΄Π°Π½Π½ΠΈ ΠΎΡsar.- Prometheus + Node Exporter: Π‘ΡΠ±ΠΈΡΠ° ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΎΡ
/proc/meminfoΠΈ Π³ΠΈ ΠΈΠ·Π»Π°Π³Π° Π·Π° ΡΠ°Π±Π»Π° Π½Π° Grafana. - Netdata: ΠΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ Ρ Π½ΡΠ»Π΅Π²Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Ρ Π³ΡΠ°Π½ΡΠ»ΡΡΠ½ΠΎΡΡ ΠΎΡ ΡΠ΅ΠΊΡΠ½Π΄Π° ΠΈ Π²Π³ΡΠ°Π΄Π΅Π½ΠΎ ΠΎΡΠΊΡΠΈΠ²Π°Π½Π΅ Π½Π° Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΈ Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ°.
- Zabbix ΠΈΠ»ΠΈ Nagios: ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΠΎΡ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π΅Π½ ΠΊΠ»Π°Ρ Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΡΠ΅ΠΌΠΈ ΠΏΡΠ°Π³ΠΎΠ²Π΅ Π·Π° ΠΏΠ°ΠΌΠ΅Ρ ΠΈ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π·Π° Π΅ΡΠΊΠ°Π»Π°ΡΠΈΡ.
ΠΡΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½ΠΈΡ Π½Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° Π·Π° GPU Π₯ΠΎΡΡΠΈΠ½Π³, Π½Π°Π±Π»ΡΠ΄Π°Π²Π°ΠΉΡΠ΅ ΠΈ GPU VRAM Π·Π°Π΅Π΄Π½ΠΎ ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½Π°ΡΠ° RAM β nvidia-smi --query-gpu=memory.used,memory.free --format=csv ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π΅ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΈΡΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π·Π° GPU ΠΏΠ°ΠΌΠ΅Ρ.
ΠΠ° ΡΠ΅Π± Ρ
ΠΎΡΡΠΈΠ½Π³ ΡΡΠ΅Π΄ΠΈ, ΡΠΏΡΠ°Π²Π»ΡΠ²Π°Π½ΠΈ ΡΡΠ΅Π· VPS ΠΊΠΎΠ½ΡΡΠΎΠ»Π½ΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ, ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΏΠ°Π½Π΅Π»ΠΈ Π²ΠΊΠ»ΡΡΠ²Π°Ρ Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ Π³ΡΠ°ΡΠΈΠΊΠΈ Π·Π° ΠΏΠ°ΠΌΠ΅Ρ β Π½ΠΎ ΡΠ΅ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΏΡΠ°Π²ΡΡ Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡ Π½Π° ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΈ ΠΎΡ 1β5 ΠΌΠΈΠ½ΡΡΠΈ ΠΈ ΡΠ΅ ΠΏΡΠΎΠΏΡΡΠ½Π°Ρ ΠΊΡΠ°ΡΠΊΠΎΡΡΠ°ΠΉΠ½ΠΈ ΠΏΠΈΠΊΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ vmstat ΠΈΠ»ΠΈ sar Π±ΠΈΡ
Π° ΡΠ»ΠΎΠ²ΠΈΠ»ΠΈ.
Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠ° ΠΌΠ°ΡΡΠΈΡΠ° Π·Π° ΡΠ΅ΡΠ΅Π½ΠΈΡ: ΠΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΊΠΎΠ³Π°
| Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ | ΠΡΠ΅ΠΏΠΎΡΡΡΠ°Π½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ | ΠΠΎΠΌΠ°Π½Π΄Π° | |
|---|---|---|---|
| ΠΡΡΠ·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π·Π΄ΡΠ°Π²Π΅ΡΠΎ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° | free | free -h | |
| ΠΠ°ΠΌΠΈΡΠ°Π½Π΅ Π½Π° Π½Π°ΠΉ-Π³ΠΎΠ»Π΅ΠΌΠΈΡΠ΅ ΠΊΠΎΠ½ΡΡΠΌΠ°ΡΠΎΡΠΈ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° | ps ΠΈΠ»ΠΈ htop | `ps aux βsort=-%mem | head -15` |
| Π’ΠΎΡΠ½ΠΎ ΠΎΡΡΠΈΡΠ°Π½Π΅ Π·Π° Π²ΡΠ΅ΠΊΠΈ ΠΏΡΠΎΡΠ΅Ρ | smem | smem -s pss -r | |
| ΠΠΈΠ°Π³Π½ΠΎΡΡΠΈΡΠΈΡΠ°Π½Π΅ Π½Π° Π°ΠΊΡΠΈΠ²Π½ΠΎ ΡΡΠ°ΠΏΠ²Π°Π½Π΅ | vmstat | vmstat 1 10 | |
| Π Π°Π·ΡΠ»Π΅Π΄Π²Π°Π½Π΅ Π½Π° ΠΌΠΈΠ½Π°Π» ΠΈΠ½ΡΠΈΠ΄Π΅Π½Ρ Ρ ΠΏΠ°ΠΌΠ΅ΡΡΠ° | sar | sar -r -f /var/log/sysstat/saDD | |
| ΠΠ°Π΄ΡΠ»Π±ΠΎΡΠ΅Π½ΠΎ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ΅Π½ ΠΏΡΠΎΡΠ΅Ρ | /proc/PID/smaps | cat /proc/PID/smaps | |
| ΠΠ΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ | Prometheus + Node Exporter | β | |
| ΠΠΈΠΌΠΈΡΠΈ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° | cgroup filesystem | cat /sys/fs/cgroup/memory/memory.usage_in_bytes |
ΠΠΎΠ½ΡΡΠΎΠ»Π΅Π½ ΡΠΏΠΈΡΡΠΊ Ρ ΠΊΠ»ΡΡΠΎΠ²ΠΈ ΠΈΠ·Π²ΠΎΠ΄ΠΈ
- ΠΠΈΠ½Π°Π³ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°ΠΉΡΠ΅ Π½Π°Π»ΠΈΡΠ½Π°ΡΠ° ΠΏΠ°ΠΌΠ΅Ρ ΠΎΡ
free -h, Π° Π½Π΅ ΠΊΠΎΠ»ΠΎΠ½Π°ΡΠ° Free, Π·Π° Π΄Π° ΠΎΡΠ΅Π½ΠΈΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ. - ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅
vmstat 1 5, Π·Π° Π΄Π° ΠΏΠΎΡΠ²ΡΡΠ΄ΠΈΡΠ΅ ΠΈΠ»ΠΈ ΠΈΠ·ΠΊΠ»ΡΡΠΈΡΠ΅ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΠΎ ΡΡΠ°ΠΏΠ²Π°Π½Π΅, ΠΏΡΠ΅Π΄ΠΈ Π΄Π° Π΅ΡΠΊΠ°Π»ΠΈΡΠ°ΡΠ΅ ΡΠ°Π·ΡΠ»Π΅Π΄Π²Π°Π½Π΅ΡΠΎ. - ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅
smem -s pss -rΠ²ΠΌΠ΅ΡΡΠΎps aux --sort=-%mem, ΠΊΠΎΠ³Π°ΡΠΎ Π²ΠΈ ΡΡΡΠ±Π²Π°Ρ ΡΠΎΡΠ½ΠΈ Π΄Π°Π½Π½ΠΈ Π·Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π·Π° Π²ΡΠ΅ΠΊΠΈ ΠΏΡΠΎΡΠ΅Ρ β ΠΎΡΠΎΠ±Π΅Π½ΠΎ Π½Π° ΡΡΡΠ²ΡΡΠΈ Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΠΈ, ΡΠΏΠΎΠ΄Π΅Π»ΡΡΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. - ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΉΡΠ΅
sysstatΠ½Π° Π²ΡΠ΅ΠΊΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½ ΡΡΡΠ²ΡΡ Π²Π΅Π΄Π½Π°Π³Π° ΡΠ»Π΅Π΄ ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ΡΠΎ, Π·Π° Π΄Π° Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΡΠ΅ ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΎ ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡsar. - ΠΠ°Π΄Π°ΠΉΡΠ΅
vm.swappiness=10ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π²/etc/sysctl.confΠ½Π° ΡΡΡΠ²ΡΡΠΈ Π·Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, Π·Π° Π΄Π° ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠ°ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° swap. - ΠΡΠΎΠ²Π΅ΡΠ΅ΡΠ΅
/proc/meminfoΠ·Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π½Π°SlabΠΈDirty, ΠΊΠΎΠ³Π°ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π½Π΅ ΠΎΠ±ΡΡΠ½ΡΠ²Π°Ρ Π½Π°Π±Π»ΡΠ΄Π°Π²Π°Π½ΠΎΡΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°. - ΠΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½ΠΈΡ, ΡΠ΅ΡΠ΅ΡΠ΅ cgroup ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ Π·Π° ΠΏΠ°ΠΌΠ΅Ρ β Π° Π½Π΅
freeβ Π·Π° ΡΠΎΡΠ½ΠΈ Π»ΠΈΠΌΠΈΡΠΈ ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅. - Π ΡΡΠ΅Π΄ΠΈ Π·Π° ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½ Ρ ΠΎΡΡΠΈΠ½Π³ ΠΈΠ»ΠΈ VPS, ΡΡΡΠ°Π½ΠΎΠ²Π΅ΡΠ΅ Π±Π°Π·ΠΎΠ²ΠΈ Π»ΠΈΠ½ΠΈΠΈ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° Π½ΠΎΡΠΌΠ°Π»Π½Π° ΡΠ°Π±ΠΎΡΠ°, Π·Π° Π΄Π° ΠΌΠΎΠ³Π°Ρ Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΈΡΠ΅ Π΄Π° Π±ΡΠ΄Π°Ρ Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ ΡΠ°Π·ΠΏΠΎΠ·Π½Π°ΡΠΈ.
Π§Π΅ΡΡΠΎ Π·Π°Π΄Π°Π²Π°Π½ΠΈ Π²ΡΠΏΡΠΎΡΠΈ
ΠΠ°ΠΊΠ²Π° Π΅ ΡΠ°Π·Π»ΠΈΠΊΠ°ΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ βΡΠ²ΠΎΠ±ΠΎΠ΄Π½Π°β ΠΈ βΠ½Π°Π»ΠΈΡΠ½Π°β ΠΏΠ°ΠΌΠ΅Ρ Π² Linux?
βΠ‘Π²ΠΎΠ±ΠΎΠ΄Π½Π°β Π΅ RAM Π±Π΅Π· Π½ΠΈΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ΠΊΡΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅. βΠΠ°Π»ΠΈΡΠ½Π°β Π΅ ΡΠ΅Π°Π»ΠΈΡΡΠΈΡΠ½Π°ΡΠ° ΠΎΡΠ΅Π½ΠΊΠ° Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°, ΠΊΠΎΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° Π·Π° Π½ΠΎΠ²ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ Π±Π΅Π· Π·Π°Π΄Π΅ΠΉΡΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠ°ΠΏΠ²Π°Π½Π΅ β ΡΡ Π²ΠΊΠ»ΡΡΠ²Π° ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅ΠΌ ΠΊΠ΅Ρ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠΈ ΠΈ Π±ΡΡΠ΅ΡΠΈ. ΠΠ° Π·Π΄ΡΠ°Π² Linux ΡΡΡΠ²ΡΡ, βΡΠ²ΠΎΠ±ΠΎΠ΄Π½Π°ΡΠ°β ΠΏΠ°ΠΌΠ΅Ρ Π΅ ΡΠ΅ΡΡΠΎ Π±Π»ΠΈΠ·ΠΎ Π΄ΠΎ Π½ΡΠ»Π°, Π΄ΠΎΠΊΠ°ΡΠΎ βΠ½Π°Π»ΠΈΡΠ½Π°ΡΠ°β ΠΎΡΡΠ°Π²Π° Π²ΠΈΡΠΎΠΊΠ°. ΠΠΈΠ½Π°Π³ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ βΠ½Π°Π»ΠΈΡΠ½Π°β Π·Π° ΠΎΡΠ΅Π½ΠΊΠΈ Π½Π° ΠΊΠ°ΠΏΠ°ΡΠΈΡΠ΅ΡΠ°.
ΠΠ°ΡΠΎ ΡΡΠΌΠ°ΡΠ° ΠΎΡ Π²ΡΠΈΡΠΊΠΈ RSS ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ Π½Π°Π΄Π²ΠΈΡΠ°Π²Π° ΠΎΠ±ΡΠ°ΡΠ° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠ° RAM?
RSS (Π Π°Π·ΠΌΠ΅Ρ Π½Π° ΡΠ΅Π·ΠΈΠ΄Π΅Π½ΡΠ½ΠΈΡ Π½Π°Π±ΠΎΡ) Π±ΡΠΎΠΈ ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½Π°ΡΠ° ΠΏΠ°ΠΌΠ΅Ρ β ΠΊΠ°ΡΠΎ ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ β Π²Π΅Π΄Π½ΡΠΆ Π·Π° Π²ΡΠ΅ΠΊΠΈ ΠΏΡΠΎΡΠ΅Ρ, ΠΊΠΎΠΉΡΠΎ Ρ ΠΊΠ°ΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ°. ΠΠΊΠΎ 50 ΠΏΡΠΎΡΠ΅ΡΠ° Π²ΡΠ΅ΠΊΠΈ ΠΊΠ°ΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ° 100 MB ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΠΎΠ±ΡΠ°ΡΠ° ΡΡΠΌΠ° Π½Π° RSS ΡΠ΅ Π½Π°Π΄ΡΠ²Π° Ρ 4 900 MB Π½Π°Π΄ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π½Π°ΡΠ° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠ° ΡΠ΅Π½Π°. ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ smem Ρ PSS ΠΎΡΡΠΈΡΠ°Π½Π΅, Π·Π° Π΄Π° Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡΠ°ΡΠ΅ ΡΠΎΠ²Π° Π΄Π²ΠΎΠΉΠ½ΠΎ Π±ΡΠΎΠ΅Π½Π΅.
ΠΠ°ΠΊ Π΄Π° Π½Π°ΠΌΠ΅ΡΡ ΠΊΠΎΠΉ ΠΏΡΠΎΡΠ΅Ρ Π΅ Π·Π°Π΄Π΅ΠΉΡΡΠ²Π°Π» Linux OOM ΡΠ±ΠΈΠ΅ΡΠ°?
ΠΠ·ΠΏΡΠ»Π½Π΅ΡΠ΅ dmesg | grep -i "oom|killed process" ΠΈΠ»ΠΈ journalctl -k | grep -i oom. Π―Π΄ΡΠΎΡΠΎ Π·Π°ΠΏΠΈΡΠ²Π° ΡΠΎΡΠ½ΠΎΡΠΎ ΠΈΠΌΠ΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ°, PID ΠΈ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ Π·Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π½Π° ΡΡΠ±ΠΈΡΠΈΠ΅ΡΠΎ Π·Π° ΡΠ±ΠΈΠ²Π°Π½Π΅, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ oom_score Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΎΡΠ΅Π½Π΅Π½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ.
ΠΠ°ΠΊΠ²ΠΎ ΠΏΠΎΠΊΠ°Π·Π²Π° Π²ΠΈΡΠΎΠΊΠΎΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° swap ΠΈ ΠΊΠΎΠ»ΠΊΠΎ ΡΠ΅ΡΠΈΠΎΠ·Π½ΠΎ Π΅ ΡΠΎ?
Π£ΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° swap ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΡΠ°Π±ΠΎΡΠ½ΠΈΡΡ Π½Π°Π±ΠΎΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π½Π°Π΄Π²ΠΈΡΠ°Π²Π° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠ°ΡΠ° RAM. Π―Π΄ΡΠΎΡΠΎ ΠΊΠΎΠΌΠΏΠ΅Π½ΡΠΈΡΠ° ΡΡΠ΅Π· ΡΡΡΠ°Π½ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π½Π° Π΄ΠΈΡΠΊΠ°, ΠΊΠΎΠ΅ΡΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π΅ 100β1 000 ΠΏΡΡΠΈ ΠΏΠΎ-Π±Π°Π²Π½ΠΎ ΠΎΡ Π΄ΠΎΡΡΡΠΏΠ° Π΄ΠΎ RAM. ΠΠΎΡΠΈ ΡΠΊΡΠΎΠΌΠ½Π° swap Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡ ΠΏΡΠΈΡΠΈΠ½ΡΠ²Π° ΠΈΠ·ΠΌΠ΅ΡΠΈΠΌΠΎ Π·Π°Π±Π°Π²ΡΠ½Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ. Π’ΠΎΠ²Π° Π΅ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»Π΅Π½ ΡΠΈΠ³Π½Π°Π» ΠΈΠ»ΠΈ Π·Π° Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΡΠΌΠ°ΡΠΈΡΡΠ° Π½Π° ΠΏΠ°ΠΌΠ΅Ρ, ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° RAM, ΠΈΠ»ΠΈ ΠΏΡΠ΅ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½ΠΈΡΡΠ°.
ΠΠΎΠ³Π° Π»ΠΈ Π΄Π° Π½Π°Π±Π»ΡΠ΄Π°Π²Π°ΠΌ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° RAM Π²ΡΡΡΠ΅ Π² Docker ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈ Linux ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ?
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΊΠ°ΡΠΎ free Π²ΡΡΡΠ΅ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ ΠΎΠ±ΡΠ°ΡΠ° RAM Π½Π° Ρ
ΠΎΡΡΠ°, Π° Π½Π΅ Π»ΠΈΠΌΠΈΡΠ° Π½Π° cgroup Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°. ΠΠ° ΡΠΎΡΠ½ΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π½Π° Π½ΠΈΠ²ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, ΡΠ΅ΡΠ΅ΡΠ΅ /sys/fs/cgroup/memory/memory.usage_in_bytes Π·Π° ΡΠ΅ΠΊΡΡΠΎΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ ΠΈ /sys/fs/cgroup/memory/memory.limit_in_bytes Π·Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½ΠΈΡ Π»ΠΈΠΌΠΈΡ. ΠΠ»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΎ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ docker stats <container_name> ΠΎΡ Ρ
ΠΎΡΡΠ° Π·Π° ΡΠΎΡΠΌΠ°ΡΠΈΡΠ°Π½ ΠΈΠ·Π³Π»Π΅Π΄.
ΠΎΡ Π²ΡΠΈΡΠΊΠΈ Ρ
ΠΎΡΡΠΈΠ½Π³ ΡΡΠ»ΡΠ³ΠΈ