�@�ł́A���i2�j����ɐςݏグ�O���t���쐬���A�������̎g�p�ʂ���͂��܂��B
�@�}2�̓��u�[�g���鏭���O��/proc/meminfo�ɂ��āA�O���̊ϓ_�Ɋ�Â��Đςݏグ�O���t����������̂ł��B
�@�قڂ��ׂẴ�������Active�ƂȂ��Ă���AMemFree��Inactive�͂킸���ł��B����͊m���Ƀ������s���Ƃ��������ł��B�J�[�l���̕������������������ƍl���Ă����̂ł����A�̐S��PageTables��Slab�AVmallocUsed�Ȃǂ͂��܂葝���Ă��܂���B����͈�̂ǂ��������Ƃł��傤���H
�@�c�c�ƁA�����܂ł��āA1�s�R�ȓ_�ɋC���t���܂��H
�@�����B���ׂĂ𑫂����������̑��ʂ���12Gbytes��������܂���B�m�����̃T�[�o�̓�������50Gbytes���ڂ��Ă��܂�����ˁH ���ꂪ���̊Ԃɂ�12Gbytes�ɂȂ��Ă���c�c������ςȂ��Ƃ��N���Ă������ł��B
�@�m�F�̂��߂ɁA���u�[�g���O��̃������g�p�ʂ̃O���t�����Ă݂܂��傤�i�}3�j�B���u�[�g�O��10Gbytes�O��ł����A���u�[�g���50Gbytes���x�ɏオ���Ă��܂��B����͖��炩�����i2�j�����藧���Ă��Ȃ����Ƃ������Ă��܂��B
�@�}1�̉E���ɔ������c�������Ƃɂ��C�t���ł��傤���H ���i2�j�Ōv�Z������Ȃ��̂͂��̕����ł��B�܂�ALinux�ɂ�/proc/meminfo�ɂ͋L�^����Ȃ��������̈悪���݂���̂ł��B����͈�̉��Ȃ̂ł��傤���B
�@vmalloc()��kmalloc()�𗘗p���ă��������m�ۂ����ꍇ�A�����API�̉�����ŃJ�E���^��݂��ē��v�����擾���Ă��܂��B/proc/meminfo�́A���̓��v�����o�͂��邽�߂̃G���g���ł��B
�@������Linux�J�[�l���ł́A������API��������Ƀ��[���x���̊��𗘗p���邱�ƂŁA�����̃J�E���g��������邱�Ƃ��ł��܂��B����Ӗ��u���A�v�̂悤�Ȍ`�Ń��������擾���邱�Ƃ��ł��Ă��܂��̂ł��B���́u���ł�����v���A�J�[�l���v���O���~���O�̋��낵���Ƃ����1�Ƃ����܂��B
�@���̂悤�ȏꍇ�A�蕪���̎菇�Ƃ��Ă͂ǂ�����悢�ł��傤���H Linux�J�[�l����1000���s���鋐��ȃv���O�����ł��B��݂����Ƀ\�[�X�R�[�h��ǂ�Ŗ��_�ɂԂ���\���́A���ꂱ�����ɓ���������Ⴂ���炢�ł��B��͂�_���I�ɏ���ǂ��Ēn���ȍi�荞�݂�����Ă�����������܂���B
�@�����̃������̈������Ă��錴����_���I�ɒǂ��Ă����ɓ������āA���ڂ��ׂ��͈ȉ���2�_�ł��B
�@�܂�A�ʏ��API�͗��p���Ă��Ȃ����AMemFree�̃J�E���g�_�E���͍s���Ă���̂ł��BMemFree���J�E���g�_�E��������悤�ȏ����́A�e�탁�����m��API�������[���x���ȕ����Ŏ�������Ă��܂��BSlab��vmalloc�APageTables�Ȃǂ����ׂāA����MemFree���J�E���g�_�E��������悤�ȋ��ʊ��𗘗p���Ă��܂��B���̊���alloc_pages()�i��3�j�ł��B
�@��{�I�ɂ��̊��̓������̓��v���̃J�E���g�ΏۂɂȂ�Ȃ����߁A���ڎg�����Ƃ͖]�܂����Ȃ��̂ł����A�\�[�X�R�[�h��grep���Ă݂�ƁA����alloc_pages()�ڌĂяo���Ă���s�͂��҂͌��\���܂��B���ɁA�h���C�o�̂悤�ȁu��x���������m�ۂ���Ƃ������܂胁������K�v�Ƃ��Ȃ��v���[�`���ɑ��������܂��B�ق��ɂ��ADMA�̈�p�̃������m�ۂȂǁA�����̃T�u�V�X�e�����狤�ʊ��Ƃ��ČĂяo����Ă��܂��B
�@���������alloc_pages()�ڌĂяo���Ă��镔���𒆐S�I�ɒ��ׂ�̂��悳�����ł��B�������A���ɑ����̕����ŗ��p����Ă��邱�̊��̌Ăяo�����𒀈�ǂ��Ă����̂��܂������I�ł͂���܂���B�ǂ�����Ζ��̍����������邱�Ƃ��ł���̂ł��傤���c�c�H
��3�Falloc_pages()���̂̓}�N����`����Ă���A���Ƃ��Ă�__alloc_pages()�Ƃ������̂��{�̂ł��B�����ł͊ȒP�ɂ��邽�߂ɁA�֘A�����̑��̂Ƃ���alloc_pages()�ƌĂ�ł��܂�
�@�J�[�l���ɖ�肪����ꍇ�A�\�[�X�R�[�h������̂�1�̎�ł����A�ق��ɂ���͂̂��߂̎�@�͂���������܂��B�Ⴆ�Έȉ��̎�@����\�I�ł��傤�B
�@1��Crash Dump�̓v���Z�X�̃R�A�_���v�Ɠ����ŁA���u�Ԃ̃������C���[�W��ۑ����A��͂����@�ł��B�J�[�l���p�j�b�N�Ȃǂ��N�����ăV�X�e������~�����ꍇ�ɁA�ǂ�ȗ��R�Œ�~�����̂��Ȃǂ���͂���̂Ɍ����Ă��܂��i��4�j�B
�@2��OProfile�͐��\��̓c�[���Ƃ��Ă̈Ӗ������������A�{�g���l�b�N�̉�͂ȂǂɌ����Ă��܂��B
�@3�̕��@�͐�������܂ł�����܂��A���܂�ɂ��n���Ȏ�i�ł��B�������ꏊ�Ɂuprintk()�v�Ƃ����A���[�U�[�v���O�����ł���printf()�ɓ�������ߍ��݁A�������ώ@���܂��B
�@1��2�̕��@�̓��������[�N�̂悤�Ȏ��ۂɂ͌����Ă��܂���B3�͍�Ƃ���ςȂ����ɁA�Ǝ��p�b�`���ڋq�̊��œ������Ă��炦��Ƃ͎v���܂���B�r���ɕ��Ă�������ꂪ�]�݂��|�����c�[��������܂��B���̖����uSystemTap�v�Ƃ����܂��B
�@SystemTap�Ƃ́A���傤�ǂ��̃V�X�e�������삵�Ă���RHEL 4 Update 2����A�e�N�m���W�[�v���r���[�Ƃ��ē��������悤�ɂȂ����c�[���ł��B�ꌾ�ł����ƁA���쒆�̃J�[�l���ɓƎ��̃p�b�`�āA�D���ȏ����������邱�Ƃ��ł���c�[���ł��B
�@�����Ƃ�����Ɛ�������ƁA�ȉ��̂悤�ɓ��삵�܂��B
�@���̃c�[���́A���쒆�̃J�[�l���A�܂胁������ɂ����ύX�������܂���B�܂�A�f�B�X�N��ɂ���J�[�l���̃o�C�i���Ƀp�b�`�ĂȂ����߁A���u�[�g�������ȑO�ɃJ�[�l�����W���[�����A�����[�h���A���ɖ߂�܂��B���̂��߁A�ڋq���猩��ƁA�p�b�`�Ăĉ�͂�����������X�N��R�X�g�����i�����čς݂܂��B
�@����ł́ASystemTap���ǂ̂悤�ɗ��p�����̂��������܂��傤�B
�@alloc_pages()�ɂ́A�ɂȂ郁��������p���Ƃ���free_pages()������܂��B�ʏ�́A�Ƃ���alloc_pages()�Ŏ擾�����������́A���炭�����free_pages()�ʼn������܂��B�܂�Aalloc_pages()�ɂ́A����ɑΉ�����free_pages()������͂��ł��B�����ɂȂ��Ă��Ȃ��ꍇ�̓��������[�N���������Ă���\���������Ƃ������ƂɂȂ�܂��B
�@�����͂���2�̊��ɁA�J�[�l�����̃X�^�b�N�g���[�X�ƃv���Z�X�����擾���ĕۑ�����悤�ȏ������������݁A�ڋq���̌��؊��Ŏ��{���Ă��炤���Ƃɂ��܂����B
�@�������Ď擾�������O�f�[�^����Aalloc_pages()�ɑΉ�����free_pages()�������ăy�A�����܂��B���̃y�A�̂����Aalloc_pages��free_pages�̐����ނ荇���Ă��Ȃ����̂������o���܂��B
�@���̍�ƁA��ς����ɕ������܂����A�{���ɑ�ςł��I
�@5�����x�f�[�^���擾���������ŁA�X�^�b�N�g���[�X�ŕ��ނ��ׂ�alloc_pagas�̌Ăяo���p�^�[������5000��ވȏ�ɂȂ��Ă��܂����B�����Ȃ�alloc_pages��free_pages�̑Ή��W�����Ă����Ă��L�����Ȃ����߁A���������v�����擾����API����Ăяo����Ă�����̂�Ђ��[�������Ă����܂��B��������A�ގ��̃X�^�b�N�g���[�X���܂Ƃ߂Ă����Afree_pages�Ƃ̑Ή��W������Ă����܂��B
�@�����āA�ŏI�I��alloc_pages��free_pages�̑Ή��W�����Ă��Ȃ��悤�Ɍ������̂��ANFS����Ăяo����Ă�����̂ƁAcciss�iHP��SMART�A���C�̃h���C�o�j����Ăяo����Ă�����̂ł����B
��4�F���̎�@�𗘗p���āA�ғ����̃J�[�l���̃������C���[�W��ۑ�����Live Dump�Ƃ�����@������܂����A���̏u�ԏu�Ԃ̃C���[�W�����擾�ł��܂���̂ŁASystemTap�قǂ̏_��͂���܂���B
Copyright © ITmedia, Inc. All Rights Reserved.