[comment]: # ({4bf3e4ff-098d0431})
# 7 Uwagi dotyczące parametru memtype w pozycjach proc.mem

[comment]: # ({/4bf3e4ff-098d0431})

[comment]: # ({2840c113-2840c113})
#### Przegląd

Parametr **memtype** jest obsługiwany na platformach Linux, AIX, FreeBSD i Solaris.

Trzy typowe wartości parametru „memtype” są obsługiwane na wszystkich tych platformach: `pmem`, `rss` i `vsize`. Dodatkowo na niektórych platformach obsługiwane są specyficzne dla platformy wartości parametru „memtype”.

[comment]: # ({/2840c113-2840c113})

[comment]: # ({c30765ae-04a03696})
#### AIX

Zobacz wartości obsługiwane dla parametru „memtype” w systemie AIX w tabeli.

|Obsługiwana wartość|Opis|Źródło w strukturze procentry64|Próbuje zachować zgodność z|
|--|------|--|--|
|vsize ^[1](proc_mem_notes#footnotes)^|Rozmiar pamięci wirtualnej|pi\_size| |
|pmem|Procent pamięci rzeczywistej|pi\_prm|ps -o pmem|
|rss|Rozmiar rezydentnego zestawu pamięci|pi\_trss + pi\_drss|ps -o rssize|
|size|Rozmiar procesu (kod + dane)|pi\_dvm|"ps gvw" kolumna SIZE|
|dsize|Rozmiar danych|pi\_dsize|<|
|tsize|Rozmiar tekstu (kodu)|pi\_tsize|"ps gvw" kolumna TSIZ|
|sdsize|Rozmiar danych z biblioteki współdzielonej|pi\_sdsize|<|
|drss|Rozmiar rezydentnego zestawu danych|pi\_drss| |
|trss|Rozmiar rezydentnego zestawu tekstu|pi\_trss| |

[comment]: # ({/c30765ae-04a03696})

[comment]: # ({b262d0c5-cc0df248})
Uwagi dotyczące AIX:

1. Wybierając parametry dla klucza pozycji proc.mem[] w AIX, postaraj się określić wąskie kryteria wyboru procesów. W przeciwnym razie istnieje ryzyko, że do wyniku proc.mem[] zostaną wliczone niepożądane procesy.

Przykład:
```
$ zabbix_agentd -t proc.mem[,,,NonExistingProcess,rss]
proc.mem[,,,NonExistingProcess,rss]           [u|2879488]
```

Ten przykład pokazuje, że podanie tylko parametru wiersza poleceń (wyrażenia regularnego do dopasowania) powoduje samouzględnianie przez Zabbix agent — prawdopodobnie nie jest to oczekiwane zachowanie.

[comment]: # ({/b262d0c5-cc0df248})

[comment]: # ({87cd17df-14c4cc2b})
2. Nie używaj `ps -ef` do przeglądania procesów — pokazuje ono tylko procesy niejądrowe. Użyj `ps -Af`, aby zobaczyć wszystkie procesy, które będą widoczne dla Zabbix agent.

3. Przejdźmy przez przykład `topasrec`, aby zobaczyć, jak Zabbix agent `proc.mem[]` wybiera procesy.

```
$ ps -Af | grep topasrec
root 10747984        1   0   Mar 16      -  0:00 /usr/bin/topasrec  -L -s 300 -R 1 -r 6 -o /var/perf daily/ -ypersistent=1 -O type=bin -ystart_time=04:08:54,Mar16,2023
```

`proc.mem[]` ma argumenty:

```
proc.mem[<name>,<user>,<mode>,<cmdline>,<memtype>]
```

[comment]: # ({/87cd17df-14c4cc2b})

[comment]: # ({3fe2ad6d-0be32659})
Pierwszym kryterium jest nazwa procesu (argument <name>). W naszym przykładzie agent Zabbix zobaczy ją jako 'topasrec'. Aby dopasowanie zadziałało, należy albo podać 'topasrec', albo pozostawić to pole puste.
Drugim kryterium jest nazwa użytkownika (argument <user>). Aby dopasowanie zadziałało, należy albo podać 'root', albo pozostawić to pole puste.
Trzecim kryterium używanym przy wyborze procesu jest argument <cmdline>. agent Zabbix zobaczy jego wartość jako '/usr/bin/topasrec -L -s 300 -R 1 -r 6 -o /var/perf/daily/ -ypersistent=1 -O type=bin -ystart_time=04:08:54,Mar16,2023'. Aby dopasowanie zadziałało, należy albo podać wyrażenie regularne pasujące do tego ciągu, albo pozostawić to pole puste.

Argumenty <mode> i <memtype> są stosowane po użyciu trzech kryteriów wymienionych powyżej.

[comment]: # ({/3fe2ad6d-0be32659})

[comment]: # ({c2004450-8a700330})
#### FreeBSD

Zobacz wartości obsługiwane dla parametru 'memtype' w systemie FreeBSD w tabeli.

|Obsługiwana wartość|Opis|Źródło w strukturze kinfo\_proc|Próbuje zachować zgodność z|
|--|------|--|--|
|vsize|Rozmiar pamięci wirtualnej|kp\_eproc.e\_vm.vm\_map.size lub ki\_size|ps -o vsz|
|pmem|Procent pamięci rzeczywistej|obliczany na podstawie rss|ps -o pmem|
|rss|Rozmiar zestawu rezydentnego|kp\_eproc.e\_vm.vm\_rssize lub ki\_rssize|ps -o rss|
|size ^[1](proc_mem_notes#footnotes)^|Rozmiar procesu (kod + dane + stos)|tsize + dsize + ssize| |
|tsize|Rozmiar tekstu (kodu)|kp\_eproc.e\_vm.vm\_tsize lub ki\_tsize|ps -o tsiz|
|dsize|Rozmiar danych|kp\_eproc.e\_vm.vm\_dsize lub ki\_dsize|ps -o dsiz|
|ssize|Rozmiar stosu|kp\_eproc.e\_vm.vm\_ssize lub ki\_ssize|ps -o ssiz|

[comment]: # ({/c2004450-8a700330})

[comment]: # ({9164d2d0-f43d1dfd})
#### Linux

Obsługiwane wartości parametru „memtype” w systemie Linux przedstawiono w tabeli.

|Obsługiwana wartość|Opis|Źródło w pliku /proc/<pid>/status|
|--|------|--|
|vsize ^[1](proc_mem_notes#footnotes)^|Rozmiar pamięci wirtualnej|VmSize|
|pmem|Procent pamięci rzeczywistej|(VmRSS/total\_memory) \* 100|
|rss|Rozmiar zestawu rezydentnego|VmRSS|
|data|Rozmiar segmentu danych|VmData|
|exe|Rozmiar segmentu kodu|VmExe|
|hwm|Szczytowy rozmiar zestawu rezydentnego|VmHWM|
|lck|Rozmiar zablokowanej pamięci|VmLck|
|lib|Rozmiar bibliotek współdzielonych|VmLib|
|peak|Szczytowy rozmiar pamięci wirtualnej|VmPeak|
|pin|Rozmiar przypiętych stron|VmPin|
|pte|Rozmiar wpisów tablic stron|VmPTE|
|size|Rozmiar segmentów kodu + danych + stosu procesu|VmExe + VmData + VmStk|
|stk|Rozmiar segmentu stosu|VmStk|
|swap|Rozmiar używanej przestrzeni wymiany|VmSwap|

Uwagi dotyczące systemu Linux:

1.  Nie wszystkie wartości „memtype” są obsługiwane przez starsze jądra Linux. Na
    przykład jądra Linux 2.4 nie obsługują wartości `hwm`, `pin`, `peak`,
    `pte` i `swap`.
2.  Zauważyliśmy, że samomonitorowanie procesu aktywnego sprawdzania agenta Zabbix
    za pomocą `proc.mem[...,...,...,...,data]` pokazuje wartość o 4 kB większą
    niż raportowana przez wiersz `VmData` w pliku /proc/<pid>/status agenta.
    W momencie samopomiaru segment danych agenta zwiększa się o 4 kB, a następnie
    wraca do poprzedniego rozmiaru.

[comment]: # ({/9164d2d0-f43d1dfd})

[comment]: # ({d8c5e366-96fd9f28})
#### Solaris

Zobacz wartości obsługiwane dla parametru „memtype” w systemie Solaris w tabeli.

|Obsługiwana wartość|Opis|Źródło w strukturze psinfo|Próbuje zachować zgodność z|
|--|------|--|--|
|vsize ^[1](proc_mem_notes#footnotes)^|Rozmiar obrazu procesu|pr\_size|ps -o vsz|
|pmem|Procent pamięci rzeczywistej|pr\_pctmem|ps -o pmem|
|rss|Rozmiar rezydentnego zestawu stron<br>Może być zaniżony — zobacz opis rss w „man ps”.|pr\_rssize|ps -o rss|

[comment]: # ({/d8c5e366-96fd9f28})

[comment]: # ({e0ce8129-e0ce8129})
##### Przypisy

^**1**^ Wartość domyślna.

[comment]: # ({/e0ce8129-e0ce8129})
