SWAP�����뷣
˵��������һ̨Apache��������������MaxClients�������ù�����ǡ�������������������������ڴ汻�Ĺ⣬�Ӷ�����SWAP�������������������յ���崻���
����ν��SWAP������֮���£�����֮�أ�����֮�������ɲ���Ҳ��
��Щ���߿��Լ���SWAP
�������뵽�ľ���free�����ˣ���ָ���˵�ǰSWAP��ʹ��������
shell> free -m
total used free
Swap: 34175 11374 22801
��һ�����õ���sar��������г�ϵͳ�ڸ���ʱ����SWAPʹ��������
shell> sar -r kbswpfree kbswpused %swpused kbswpcad 23345644 11650572 33.29 4656908 23346452 11649764 33.29 4656216 23346556 11649660 33.29 4650308 23346932 11649284 33.29 4649888 23346992 11649224 33.29 4648848
����free������sar������ʾ�Ķ�����ʵʱ���ݣ�������Ҫ������ʹ��vmstat���
shell> vmstat 1 -----------memory------------- ---swap-- swpd free buff cache si so 11647532 123664 305064 7193168 0 0 11647532 123672 305064 7193172 0 0 11647532 125728 305064 7193468 0 0 11647532 125376 305064 7193476 0 0 11647532 124508 305068 7193624 0 0
ÿ��ˢ��һ�ν�������SWAPһ�����г����������ݣ�����si��so�Ľ��ͣ��������£�
- si: Amount of memory swapped in from disk (/s).
- so: Amount of memory swapped to disk (/s).
��������һֱ���㵱Ȼ���ò����ˣ�ż����Ϊ��Ҳûɶ����������һֱ��Ϊ�㡣
ǰ�����ܵķ����������Ķ���SWAP�������������������������鿴��������Щ����ʹ����SWAP��Ӧ�����β����أ����������е㼬�֣��������о�һ�£�
����Ϣ��top�������ṩ������Ϣ������ȱʡ��û����ʾ��������Ҫ����һ�£�
- ����top��
- ����f������ѡ���ֶεĽ��棻
- ����p��ѡ����SWAP���ֶΣ�
- ���س�ȷ�ϡ�
����Ϣ��top�����ṩ��SWAP��Ϣֻ��һ������ֵ�����߸�ֱ��һ������˵���������Dz����ŵģ���top��SWAP�ļ��㹫ʽ�ǣ�SWAP=VIRT-RES����
BTW������֮�£�top���ġ�nFLT���ֶθ��м�ֵ������ʾPageFault�Ĵ�����
�ǵ��������ܲ��ܻ�ȡ�����̵�SWAP�����أ����ż��������룺
#!/bin/bash
cd /proc
for pid in [0-9]*; do
command=$(cat /proc/$pid/cmdline)
swap=$(
awk '
BEGIN { total = 0 }
/Swap/ { total += $2 }
END { print total }
' /proc/$pid/smaps
)
if (( $swap > 0 )); then
if [[ "${head}" != "yes" ]]; then
echo -e "PID\tSWAP\tCOMMAND"
head="yes"
fi
echo -e "${pid}\t${swap}\t${command}"
fi
done
˵������ʹ��rootȨ�������д˽ű���
��Щ���ؿ���Ӱ��SWAP
�ڴ治�����ɻ�SWAP������Щʱ���㿴��ȥ�ڴ��ܳ�ԣ�������ܻ�SWAP����������ΪSWAP Insanity������������Ҫ�����¼��㣺
Swappiness����ʧ
ʵ���ϣ��������ڴ治��ʱ��ϵͳ������ѡ����һ����ͨ��SWAP���ͷ��ڴ棬��һ����ɾ��Cache�е�Page���ͷ��ڴ档һ���ܳ����������ǣ����������ļ���ʱ����ʱ���ᷢ��SWAP������������Ϊ�����ļ���ʱ����ϵͳ�����ļ�������Cache�а�Page�����棬��ʱһ�������ڴ治�㣬ϵͳ����������ͨ��SWAP���ͷ��ڴ档
�ں��е�swappiness����������������������Ϊ��ȱʡ�����£�swappiness��ֵ��60��
shell> sysctl -a | grep swappiness vm.swappiness = 60
���ĺ����ǣ�����ϵͳ��Ҫ�ڴ棬�аٷ�֮��ʮ�ĸ���ִ��SWAP��֪������һ�㣬���Ǻ���Ȼ�Ļ��뵽�������ķ���������ִ��SWAP�ĸ��ʣ�
shell> echo "vm.swappiness = 0" >> /etc/sysctl.conf shell> sysctl -p
��������ȷ���Խ���ִ��SWAP�ĸ��ʣ���������ζ����Զ����ִ��SWAP��
NUMA������
NUMA��MySQL�����кܶ����ۣ����ﲻ��˵�ˣ�ֱ��NUMA��SWAP�Ķ�Թ������
�����˽�һ��NUMA�����ĵ�numactl���
shell> numactl --hardware available: 2 nodes (0-1) node 0 size: 16131 MB node 0 free: 100 MB node 1 size: 16160 MB node 1 free: 10 MB node distances: node 0 1 0: 10 20 1: 20 10
���Կ���ϵͳ�������ڵ㣨��ʵ������������CPU�������Ǹ��Է���16G�ڴ棬�������Žڵ㻹ʣ100M�ڴ棬һ�Žڵ㻹ʣ10M�ڴ档����������һ����Ҫ11M�ڴ��Ľ��̣�ϵͳ�����ָ���һ�Žڵ���ִ�У���ʱ��Ȼϵͳ�����Ŀ����ڴ����ڸý�����Ҫ���ڴ棬����Ϊһ�Žڵ㱾��ʣ���Ŀ����ڴ治�㣬������Ȼ���ܻᴥ��SWAP��Ϊ��
��Ҫ˵����һ���£�numactl�����п����ĸ��ڵ�ʣ���ڴ���ʱ������Cache�ڴ��ģ�������Ҫ֪�������ǿ�������drop_caches�������ͷ�����
shell> sysctl vm.drop_caches=1
ע���ⲽ�������ܻ�����ϵͳ���ص���
��������ȷ��һ�����̵Ľڵ㼰�ڴ��������������������ֳɵ��ű���
����Ҫ����NUMA��SWAP��Ӱ�죬���ķ����������������̵�ʱ����������
shell> numactl --interleave=all ...
���⣬�ں˲���zone_reclaim_modeͨ��Ҳ����Ҫ����ij���ڵ������ڴ治��ʱ������Ϊ0�Ļ�����ôϵͳ�������ڴ�Զ�̽ڵ������ڴ棻����Ϊ1�Ļ�����ôϵͳ�������ڴӱ��ؽڵ�����Cache�ڴ档����ʱ����Cache�����ܺ���Ҫ������0��һ�����õ�ѡ����
shell> echo "vm.zone_reclaim_mode = 0" >> /etc/sysctl.conf shell> sysctl -p
������������һЩ����MySQL��SWAP�����ۣ���������SWAP��һ�����壬�Ƽ���
����Memcached��������ʱ������������kѡ����ܱ���ʹ��SWAP����Ҫ���á�
…
��Щ�꣬YouTube������SWAP�������Ź������ǵ�ʱ�Ľ��������ܼ��ˣ�ɾ��SWAP�����ò�˵�������ո��˵���ϧ��ܿܿ���������Ƕ��ԣ���ʵ����̫Σ���ˣ���Ϊ����һ����һ���ڴ��ľ�������û��SWAP�Ļ��壬ϵͳ��������ʼOOM���������ܻ����������ø��Ӹ��ӣ����Դ��һ��ǰ����ؼ�������ʵ�˰ɡ�
- ת����ע����Դ��ITѧϰ�� ��ַ��http://www.t086.com/ �����������Ƽ�������
- �ر������� ��վ�������ر�������ֹת�ص�ר�������������¿�������ת�أ���������ע��������ԭʼ���ߡ����°�Ȩ������ԭʼ�������С����ڱ���վת�����µĸ��˺���վ�����DZ�ʾ������л�⡣������վת�ص������а�Ȩ��������ϵ���ǣ����ǻᾡ�����Ը�����
- ������������������̸�����ɶ��ر�
- ��������������ѡʳƷ����2020�ļ��ȵ�Ͷ�ʲ��Ժ���������
- �����ڵ�����֤50���ƴ�50����ָ֤�������Ĺ���
- ����֤50����Щ��Ʊ_��֤50Ȩ����������
- ������300����֤50����֤500��ָ��2019���ڶ��ζ��ڵ���������
- ������300��ֵ/�ɳ�ָ�����Ʒ����������й�ƽ��Ȩ���½�
- ����ָ֤��������֤50��ָ��������
- ����ָ֤��������֤����ָ��������
- ����ָ֤��������֤100ָ��������
- ����ָ֤����������300ָ��������