Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

prstat -t

37 views
Skip to first unread message

Victor Sudakov

unread,
Feb 26, 2010, 11:17:21 AM2/26/10
to
�������,

��� SWAP ����� ���� ������ RSS?
man prstat ��� SWAP � RSS �����, �� �������� �� �����.

--
Victor Sudakov, VAS4-RIPE, VAS47-RIPN
2:5005/49@fidonet http://vas.tomsk.ru/

Dmitry Miloserdov

unread,
Feb 27, 2010, 12:41:03 PM2/27/10
to
On 02/26/10 07:17 PM, Victor Sudakov wrote:
> О©╫О©╫О©╫ SWAP О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ RSS?
> man prstat О©╫О©╫О©╫ SWAP О©╫ RSS О©╫О©╫О©╫О©╫О©╫, О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫.

О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫.
О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ SWAP О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ -
swap reservation. О©╫ О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ SWAP О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫
О©╫О©╫О©╫О©╫О©╫О©╫О©╫ SIZE О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫.

О©╫О©╫ О©╫О©╫О©╫О©╫ О©╫ SWAP О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ used О©╫
swap -s.

Victor Sudakov

unread,
Feb 28, 2010, 6:41:23 AM2/28/10
to
Dmitry Miloserdov wrote:
> > ��� SWAP ����� ���� ������ RSS?
> > man prstat ��� SWAP � RSS �����, �� �������� �� �����.

> ������ ������ ���������� ������������.
> � ������� SWAP ������ ���� �������� �� ��� � ��������������� -
> swap reservation. � �� ��� �������� � ������� SWAP ��������� �
> ������� SIZE ������� ������ �� �������.

������ �� ��. � 9-�� � ���� ����� ������� SIZE � ����� ������������,
����

NPROC USERNAME SIZE RSS MEMORY TIME CPU
515 oldham 356M 297M 61% 10:42:23 8.2%
3 sudakov 14M 10M 2.0% 0:00:00 0.5%

> �� ���� � SWAP �������� �� �� �������� ������� �������� � used �
> swap -s.

� ��� ����� � 10-�� ������ ����� SIZE ��������? ��� �� ����� ����� ������?

� ����� ��� ���� �� ��������, ��� ��������� ��� ���:

$ swap -s ; swap -l
total: 179632k bytes allocated + 35412k reserved = 215044k used, 7216472k available
swapfile dev swaplo blocks free
/dev/dsk/c1t0d0s1 61,65 8 1060280 1060280
/dev/zvol/dsk/d06/swap 181,1 8 10485752 10485752
$

�.�. ������ �� -s ���� used, � �� -l ��� ����� free?

Dmitry Miloserdov

unread,
Mar 1, 2010, 11:45:02 AM3/1/10
to
On 02/28/10 02:41 PM, Victor Sudakov wrote:
> О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫ 10-О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ SIZE О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫? О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫?
О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫ О©╫О©╫ prstat О©╫ О©╫ `ps -l` О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ SZ.
О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫ SIZE О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫.
О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫
О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫. HО©╫О©╫О©╫О©╫О©╫О©╫О©╫ oracle "О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫" 20G О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ 4G
О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ :)
О©╫О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫

О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫.

> О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫:
>
> О©╫.О©╫. О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ -s О©╫О©╫О©╫О©╫ used, О©╫ О©╫О©╫ -l О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ free?

О©╫О©╫О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫.

О©╫О©╫О©╫ swap О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫
О©╫О©╫О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫.
О©╫О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ swap О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫
О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫.
О©╫О©╫ О©╫О©╫О©╫О©╫ used О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫.
О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ used О©╫О©╫О©╫ reserved - О©╫О©╫ О©╫О©╫О©╫О©╫
О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫
О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫.


Victor Sudakov

unread,
Mar 2, 2010, 3:29:38 AM3/2/10
to
Dmitry Miloserdov wrote:
> > � ����� ��� ���� �� ��������, ��� ��������� ��� ���:

> >
> > �.�. ������ �� -s ���� used, � �� -l ��� ����� free?

> ��� ���� �������� ������� ��������.
> ��� swap ���������� �� ����� � ���������� ��������� �����
> ��� ���� ��� ����� ��������� ��������� ��������.
> �� ���� ��� ����� ������� swap ������ � ��������� ���� ������
> ������� ������� �� ������ �������������� ����������.
> �� ���� used ��� ����� ������ �������� ������.
> ��� ����� ������ ��� ����� used ��� reserved - �� ����
> �������� ������� ������� ������� �� �� ����������� � ��������
> ��������� ���������� ��� �������������.

��� ������.
$ swap -l

swapfile dev swaplo blocks free
/dev/dsk/c1t0d0s1 61,65 8 1060280 1060280
/dev/zvol/dsk/d06/swap 181,1 8 10485752 10485752

��� 5.5 ��� � swap areas. �ݣ ���� 6 ��� ���.

$ swap -s
total: 185044k bytes allocated + 35500k reserved = 220544k used, 7210960k available

������ ���������� 7 ��� used+available? � �� ����� ��� 5.5 ��� 11.5.

Dmitry Miloserdov

unread,
Mar 2, 2010, 11:21:54 AM3/2/10
to
On 03/ 2/10 11:29 AM, Victor Sudakov wrote:
> О©╫О©╫О©╫ 5.5 О©╫О©╫О©╫ О©╫ swap areas. О©╫щё О©╫О©╫О©╫О©╫ 6 О©╫О©╫О©╫ О©╫О©╫О©╫.
> О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ 7 О©╫О©╫О©╫ used+available? О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ 5.5 О©╫О©╫О©╫ 11.5.

"О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫."
О©╫О©╫О©╫О©╫О©╫ "О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫" - О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫.
О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫ + mlocked О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫.
mlock О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ - О©╫О©╫ О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫.
О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ - О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ 80% О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫.
О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ - О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫
О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫. ZFS О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫. О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫.
О©╫О©╫О©╫О©╫-О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫. О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫
О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫.
О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫ О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫ zfs О©╫О©╫

Victor Sudakov

unread,
Mar 25, 2011, 3:27:20 AM3/25/11
to
> >�.�. ������ �� -s ���� used, � �� -l ��� ����� free?
>
> ��� ���� �������� ������� ��������.
> ��� swap ���������� �� ����� � ���������� ��������� �����
> ��� ���� ��� ����� ��������� ��������� ��������.
> �� ���� ��� ����� ������� swap ������ � ��������� ���� ������
> ������� ������� �� ������ �������������� ����������.
> �� ���� used ��� ����� ������ �������� ������.
> ��� ����� ������ ��� ����� used ��� reserved - �� ����
> �������� ������� ������� ������� �� �� ����������� � ��������
> ��������� ���������� ��� �������������.

H� ����� �� ������ ��� ��������� ��������� ���������� ����������
������������ � available?

H� �������� ������� ���ף� �����������, ������� ��� ����� �� zfs
volume � ����� �����:

total: 2626092k bytes allocated + 304036k reserved = 2930128k used, 438844k available
total: 2626076k bytes allocated + 304140k reserved = 2930216k used, 1470608k available
total: 2626072k bytes allocated + 304224k reserved = 2930296k used, 421816k available

����� ��� ��� ��� ��������� � ����� ����� ���������. H� �����
���������� ����������� �� ������. �.�. ���������� available ��
"swap -s" ������ ������, ��� ����� �������� ������ swap ��������.

Victor Sudakov

unread,
Mar 25, 2011, 5:26:34 AM3/25/11
to
Victor Sudakov wrote:
> > >Т.е. почему по -s есть used, а по -l все блоки free?
> >
> > Тут надо основные понятия освежить.
> > Под swap понимается не файлы и устройства суммарный объем
> > тех мест где могут храниться свапуемые страницы.
> > То есть это равно размеру swap файлов и устройств плюс память
> > которая которая не занята невыгружаемыми страницами.
> > То есть used это часто просто занаятая память.
> > Еще нужно учесть что часть used это reserved - то есть
> > страницы которые процесс получил но не использовал и реальное
> > выделение произойдет при использовании.

> Hо разве не должны все имеющиеся свободные устройства безусловно
> прибавляться к available?

> Hа тестовой машинке провёл эксперимент, добавил гиг свопа на zfs
> volume и опять убрал:

> total: 2626092k bytes allocated + 304036k reserved = 2930128k used, 438844k available
> total: 2626076k bytes allocated + 304140k reserved = 2930216k used, 1470608k available
> total: 2626072k bytes allocated + 304224k reserved = 2930296k used, 421816k available

> вроде как раз гиг добавился и потом опять отобрался. Hо такая
> логичность наблюдается не всегда. Т.е. количество available по
> "swap -s" бывает меньше, чем объем заведомо пустых swap разделов.

Hе, не так спрошу. Согласно
http://www.unixguide.net/sun/faq/3.81.shtml
the "swap -s" command will list the size of virtual swap. Physical
swap added to the physical memory.

Как в этом случае available может быть _меньше_, чем количество
_пустого_ физического свопа?

$ swap -l ; swap -s


swapfile dev swaplo blocks free

/dev/zvol/dsk/rpool/swap 181,2 8 2097144 2097016
total: 2630136k bytes allocated + 308348k reserved = 2938484k used, 395392k available
$

Dmitry Miloserdov

unread,
Mar 25, 2011, 7:51:21 AM3/25/11
to
25.03.2011 12:26, Victor Sudakov пишет:

> Hе, не так спрошу. Согласно
> http://www.unixguide.net/sun/faq/3.81.shtml
> the "swap -s" command will list the size of virtual swap. Physical
> swap added to the physical memory.
> Как в этом случае available может быть _меньше_, чем количество
> _пустого_ физического свопа?

Hу например - у тебя 2 гига памяти и 2 гигв свопа.
Ты запускаешь процесс который говорит malloc(3 гига)
Память ему нужна и она выделяется. С этого момента система
никому не даст более гига. Hо память физически еще занята
ни в своп ничего не написалось ни даже к страницам процесса
не поставили ничего в соответствие. Заниматься она будет
по мере использования процессом. В своп писаться по мере
вытеснения из основной.
То что в своп ничего ничего не написано (swap -l) не значит
что система этот файл отдаст - она на него рассчитывала когда
память процессам.

PS: С новым годом;) ветке чуть больше года. Два раза проверял
не заблудившееся ли древнее письмо.

Victor Sudakov

unread,
Feb 11, 2012, 6:41:54 AM2/11/12
to
А давай этот древний тред еще оживим. Будет рекорд. /400 уже успел
умереть и возродиться, а тред будет жить.

Вот смотри. В системе 6 гиг ОЗУ и 1 гиг свопа на диске:

$ swap -l
swapfile dev swaplo blocks free
/dev/zvol/dsk/rpool/swap 181,2 8 2097144 2066984
$ prtconf | grep Memo
Memory size: 6142 Megabytes
$

При этом used+available memory примерно 3 гига:

$ swap -s
total: 875968k bytes allocated + 48912k reserved = 924880k used, 2155876k available
$

Где еще три или даже четыре гига? Если их например откусили под shmem,
они не будут показываться в "swap -s" как used? Если нет, то как
увидеть, сколько откусили под shmem и кто?

Dmitry Miloserdov

unread,
Feb 15, 2012, 7:05:52 AM2/15/12
to
On 11.02.2012 15:41, Victor Sudakov wrote:
> А давай этот древний тред еще оживим. Будет рекорд. /400 уже успел
> умереть и возродиться, а тред будет жить.
Hу у меня и от треда и от всей эхи только это письмо и есть


> Где еще три или даже четыре гига? Если их например откусили под shmem,
> они не будут показываться в "swap -s" как used? Если нет, то как
> увидеть, сколько откусили под shmem и кто?
Hу shmem смотрится классически ipcs -m
swap -s - показывает память которая может размещаться в свопе.
То есть туда не может попасть память "приколотая" с помощью mlock()
или память со своим бекэндом то есть файлы отображенные в память
через mmap(). Первая не показана совсем, а вторая считается available.
Hо главная головная боль - это память ядра.
Если используешь zfs ( а судя по расположению свопа - используешь ) -
то в памяти ядра сидит куча данных - некий аналог pagecache для
остальных ФС. Он освобождается при необходимости. То есть, несмотря
на то, что только 2Г available, если процесс запросит 3Г, то он
скорее всего их получит.

$ echo ::memstat | pfexec mdb -k
Page Summary Pages MB %Tot
------------ ---------------- ---------------- ----
Kernel 858751 3354 27%
ZFS File Data 1455754 5686 46%
Anon 345073 1347 11%
Exec and libs 13538 52 0%
Page cache 6301 24 0%
Free (cachelist) 133073 519 4%
Free (freelist) 331012 1293 11%

Total 3143502 12279
Physical 3083836 12046

Victor Sudakov

unread,
Feb 15, 2012, 11:20:06 PM2/15/12
to
Dmitry Miloserdov wrote:

> > Где еще три или даже четыре гига? Если их например откусили под shmem,
> > они не будут показываться в "swap -s" как used? Если нет, то как
> > увидеть, сколько откусили под shmem и кто?
> Hу shmem смотрится классически ipcs -m

Я смотрел "ipcs -b", показывает что SEGSZ у оракла примерно полгига.
Откуда отведены эти полгига (из Kernel или Exec или ...) - мне непонятно.
Hо см. далее.

> swap -s - показывает память которая может размещаться в свопе.
> То есть туда не может попасть память "приколотая" с помощью mlock()
> или память со своим бекэндом то есть файлы отображенные в память
> через mmap(). Первая не показана совсем, а вторая считается available.
> Hо главная головная боль - это память ядра.
> Если используешь zfs ( а судя по расположению свопа - используешь ) -
> то в памяти ядра сидит куча данных - некий аналог pagecache для
> остальных ФС. Он освобождается при необходимости. То есть, несмотря
> на то, что только 2Г available, если процесс запросит 3Г, то он
> скорее всего их получит.

> $ echo ::memstat | pfexec mdb -k
> Page Summary Pages MB %Tot
> ------------ ---------------- ---------------- ----
> Kernel 858751 3354 27%
> ZFS File Data 1455754 5686 46%
> Anon 345073 1347 11%
> Exec and libs 13538 52 0%
> Page cache 6301 24 0%
> Free (cachelist) 133073 519 4%
> Free (freelist) 331012 1293 11%

> Total 3143502 12279
> Physical 3083836 12046

Вот несмотря на наличие ZFS, "ZFS File Data" у меня не фигурирует.
Интересно другое. Вот состояние памяти на свежезагруженной системе,
оракл не запущен:

# swap -s
total: 253948k bytes allocated + 48084k reserved = 302032k used, 5336008k available
# echo ::memstat | mdb -k
Page Summary Pages MB %Tot
------------ ---------------- ---------------- ----
Kernel 207872 812 13%
Anon 65577 256 4%
Exec and libs 7351 28 0%
Page cache 6402 25 0%
Free (cachelist) 5882 22 0%
Free (freelist) 1277209 4989 81%

Total 1570293 6133
Physical 1555405 6075
#

Запускаем оракл, и кто-то откусывает полгига от ядерной памяти.
Могу предположить, это те самые полгига shmem.

# swap -s
total: 869052k bytes allocated + 133732k reserved = 1002784k used, 4087116k avai
lable
# echo ::memstat | mdb -k
Page Summary Pages MB %Tot
------------ ---------------- ---------------- ----
Kernel 343643 1342 22%
Anon 219368 856 14%
Exec and libs 19616 76 1%
Page cache 6421 25 0%
Free (cachelist) 8510 33 1%
Free (freelist) 972735 3799 62%

Total 1570293 6133
Physical 1555405 6075
#

Останавливаем оракл, а ядерная память не освобождается:

# swap -s
total: 256408k bytes allocated + 49368k reserved = 305776k used, 4772360k available
# echo ::memstat | mdb -k
Page Summary Pages MB %Tot
------------ ---------------- ---------------- ----
Kernel 347501 1357 22%
Anon 66183 258 4%
Exec and libs 7357 28 0%
Page cache 6402 25 0%
Free (cachelist) 21071 82 1%
Free (freelist) 1121779 4381 71%

Total 1570293 6133
Physical 1555405 6075
#

Более того, со временем эта ядерная память увеличивается до 3Г с
лишним, available соответственно уменьшается, и начинаются проблемы.

Можно ли узнать, кто скушал ядерную память или как ее почистить?

Dmitry Miloserdov

unread,
Feb 16, 2012, 9:58:41 AM2/16/12
to
On 16.02.2012 08:20, Victor Sudakov wrote:
> Я смотрел "ipcs -b", показывает что SEGSZ у оракла примерно полгига.
> Откуда отведены эти полгига (из Kernel или Exec или ...) - мне непонятно.
> Hо см. далее.

Это все из Anon.

> Вот несмотря на наличие ZFS, "ZFS File Data" у меня не фигурирует.
То что нет такой строчки означает только то что ОС хорошо бы обновить
если есть такая возможность.


> Интересно другое. Вот состояние памяти на свежезагруженной системе,
> оракл не запущен:
..
> Запускаем оракл, и кто-то откусывает полгига от ядерной памяти.
> Могу предположить, это те самые полгига shmem.

.. и оракл откусывает полгига от anon под sga которые видны через ipcs
и по мелочи под процессы из того же anon
А когда он начинает проверять консистентность файлов базы он много
всякого читает что забывает кеш zfs и соответственно откусывает от
сколько-то от kernel.

Можно наверное убедиться в этом -
сделать в оракле startup nomount
после этого в ipcs уже будет память, и от anon будет откушено, а kernel
изменится незначительно. После этого alter database mount +
alter database open практически не меняя anon откусят от kernel

> Останавливаем оракл, а ядерная память не освобождается:
Hу как видно anon освободилось.


> Более того, со временем эта ядерная память увеличивается до 3Г с
> лишним, available соответственно уменьшается, и начинаются проблемы.
>
> Можно ли узнать, кто скушал ядерную память или как ее почистить?
Я практически уверен что скушанная память тут:
kstat -p zfs:0:arcstats:size

Hо это не должно вызывать проблем в обычной эксплуатации - эта память
освобождается сама при необходимости.
А освободить ее принудительно нельзя и это была бага с критическим
приоритетом - люди с серьезными машинами виделяют системе
дополнительную полку с процессорами и памятью на время под задачу,
задача заканчивается но ядро распухает и уже не помещается в память
одной полки и вернуть временно выданные ресурсы не получается без
перезагрузки.

Hо если считаешь что действительно мешает то можешь добавить
set zfs:zfs_arc_max= ???
в /etc/system








Victor Sudakov

unread,
Feb 17, 2012, 12:37:38 AM2/17/12
to
Dmitry Miloserdov wrote:

[dd]

> > Более того, со временем эта ядерная память увеличивается до 3Г с
> > лишним, available соответственно уменьшается, и начинаются проблемы.
> >
> > Можно ли узнать, кто скушал ядерную память или как ее почистить?
> Я практически уверен что скушанная память тут:
> kstat -p zfs:0:arcstats:size

> Hо это не должно вызывать проблем в обычной эксплуатации - эта память
> освобождается сама при необходимости.

Видимо мониторинг Оракла об этом не догадывается. Вообще большое
спасибо тебе, благодаря твоим разъяснениям и также в comp.unix.solaris
проблема решилась: http://victor-sudakov.dreamwidth.org/105153.html
0 new messages