느린 파일 시스템 액세스


10

내가 돌보는 서버에서 느린 파일 시스템 문제를 진단하려고합니다. 꽤 오랫동안 진행되어 왔으며 시도 할 수있는 아이디어가 부족합니다. 여기에 두꺼운 것이 있습니다.

서버 자체는 Dell Poweredge T310입니다. RAID5에 구성된 4 개의 SAS 하드 드라이브가 있으며 Citrix XenServer 5.6을 실행하고 있습니다. VM은 (비교적) 오래된 데비안 5.0.6 설치입니다. 코어 4 개와 RAM 4Gb가 제공됩니다. 3 권이 있습니다. 시스템의 경우 10Gb 볼륨 (ext3), 데이터의 경우 980Gb 볼륨 (xfs) (~ 94 % 꽉 참) 및 데이터의 경우 다른 200Gb 볼륨 (xfs) (~ 13 % 꽉 참)

이제 이상한 것이 있습니다. 980Gb 볼륨에 대한 읽기 / 쓰기 액세스 속도가 느립니다. 운이 좋으면 5Mb / s를 얻을 수 있습니다. 처음에는 실제로 시스템 또는 하이퍼 바이저 수준의 디스크 액세스라고 생각했지만 동일한 호스트의 다른 VM이 완벽하게 제대로 실행되는 것으로 판단했습니다 (수백 Mb / s 디스크 r / w 액세스). 그런 다음이 특정 VM을 타겟팅하기 시작했습니다. 나는 그것이 XFS라고 생각하기 시작했지만 그것을 증명하기 위해 980Gb 드라이브의 파일 시스템을 수년과 수십억 개의 파일로 변경하려고 시도하지는 않을 것입니다. 그래서 200Gb 드라이브를 프로비저닝하고 동일한 읽기 / 쓰기 테스트 (기본적으로 dd)를 수행했으며 수백 Mb / sr / w 액세스가 가능했습니다. 따라서 VM, 하드웨어 및 파일 시스템 유형을 배제했습니다.

/var/log/kern.log에도 많은 것들이 있습니다; (죄송합니다, 이건 꽤 깁니다)

Sep  4 10:16:59 uriel kernel: [32571790.564689] httpd: page allocation failure. order:5, mode:0x4020
Sep  4 10:16:59 uriel kernel: [32571790.564693] Pid: 7318, comm: httpd Not tainted 2.6.32-4-686-bigmem #1
Sep  4 10:16:59 uriel kernel: [32571790.564696] Call Trace:
Sep  4 10:16:59 uriel kernel: [32571790.564705]  [<c1092a4d>] ? __alloc_pages_nodemask+0x476/0x4e0
Sep  4 10:16:59 uriel kernel: [32571790.564711]  [<c1092ac3>] ? __get_free_pages+0xc/0x17
Sep  4 10:16:59 uriel kernel: [32571790.564716]  [<c10b632e>] ? __kmalloc+0x30/0x128
Sep  4 10:16:59 uriel kernel: [32571790.564722]  [<c11dd774>] ? pskb_expand_head+0x4f/0x157
Sep  4 10:16:59 uriel kernel: [32571790.564727]  [<c11ddbbf>] ? __pskb_pull_tail+0x41/0x1fb
Sep  4 10:16:59 uriel kernel: [32571790.564732]  [<c11e4882>] ? dev_queue_xmit+0xe4/0x38e
Sep  4 10:16:59 uriel kernel: [32571790.564738]  [<c1205902>] ? ip_finish_output+0x0/0x5c
Sep  4 10:16:59 uriel kernel: [32571790.564742]  [<c12058c7>] ? ip_finish_output2+0x187/0x1c2
Sep  4 10:16:59 uriel kernel: [32571790.564747]  [<c1204dc8>] ? ip_local_out+0x15/0x17
Sep  4 10:16:59 uriel kernel: [32571790.564751]  [<c12055a9>] ? ip_queue_xmit+0x31e/0x379
Sep  4 10:16:59 uriel kernel: [32571790.564758]  [<c1279a90>] ? _spin_lock_bh+0x8/0x1e
Sep  4 10:16:59 uriel kernel: [32571790.564767]  [<eda15a8d>] ? __nf_ct_refresh_acct+0x66/0xa4 [nf_conntrack]
Sep  4 10:16:59 uriel kernel: [32571790.564773]  [<c103bf42>] ? _local_bh_enable_ip+0x16/0x6e
Sep  4 10:16:59 uriel kernel: [32571790.564779]  [<c1214593>] ? tcp_transmit_skb+0x595/0x5cc
Sep  4 10:16:59 uriel kernel: [32571790.564785]  [<c1005c4f>] ? xen_restore_fl_direct_end+0x0/0x1
Sep  4 10:16:59 uriel kernel: [32571790.564791]  [<c12165ea>] ? tcp_write_xmit+0x7a3/0x874
Sep  4 10:16:59 uriel kernel: [32571790.564796]  [<c121203a>] ? tcp_ack+0x1611/0x1802
Sep  4 10:16:59 uriel kernel: [32571790.564801]  [<c10055ec>] ? xen_force_evtchn_callback+0xc/0x10
Sep  4 10:16:59 uriel kernel: [32571790.564806]  [<c121392f>] ? tcp_established_options+0x1d/0x8b
Sep  4 10:16:59 uriel kernel: [32571790.564811]  [<c1213be4>] ? tcp_current_mss+0x38/0x53
Sep  4 10:16:59 uriel kernel: [32571790.564816]  [<c1216701>] ? __tcp_push_pending_frames+0x1e/0x50
Sep  4 10:16:59 uriel kernel: [32571790.564821]  [<c1212246>] ? tcp_data_snd_check+0x1b/0xd2
Sep  4 10:16:59 uriel kernel: [32571790.564825]  [<c1212de3>] ? tcp_rcv_established+0x5d0/0x626
Sep  4 10:16:59 uriel kernel: [32571790.564831]  [<c121902c>] ? tcp_v4_do_rcv+0x15f/0x2cf
Sep  4 10:16:59 uriel kernel: [32571790.564835]  [<c1219561>] ? tcp_v4_rcv+0x3c5/0x5c0
Sep  4 10:16:59 uriel kernel: [32571790.564841]  [<c120197e>] ? ip_local_deliver_finish+0x10c/0x18c
Sep  4 10:16:59 uriel kernel: [32571790.564846]  [<c12015a4>] ? ip_rcv_finish+0x2c4/0x2d8
Sep  4 10:16:59 uriel kernel: [32571790.564852]  [<c11e3b71>] ? netif_receive_skb+0x3bb/0x3d6
Sep  4 10:16:59 uriel kernel: [32571790.564864]  [<ed823efc>] ? xennet_poll+0x9b8/0xafc [xen_netfront]
Sep  4 10:16:59 uriel kernel: [32571790.564869]  [<c11e40ee>] ? net_rx_action+0x96/0x194
Sep  4 10:16:59 uriel kernel: [32571790.564874]  [<c103bd4c>] ? __do_softirq+0xaa/0x151
Sep  4 10:16:59 uriel kernel: [32571790.564878]  [<c103be24>] ? do_softirq+0x31/0x3c
Sep  4 10:16:59 uriel kernel: [32571790.564883]  [<c103befa>] ? irq_exit+0x26/0x58
Sep  4 10:16:59 uriel kernel: [32571790.564890]  [<c118ff9f>] ? xen_evtchn_do_upcall+0x12c/0x13e
Sep  4 10:16:59 uriel kernel: [32571790.564896]  [<c1008c3f>] ? xen_do_upcall+0x7/0xc
Sep  4 10:16:59 uriel kernel: [32571790.564899] Mem-Info:
Sep  4 10:16:59 uriel kernel: [32571790.564902] DMA per-cpu:
Sep  4 10:16:59 uriel kernel: [32571790.564905] CPU    0: hi:    0, btch:   1 usd:   0
Sep  4 10:16:59 uriel kernel: [32571790.564908] CPU    1: hi:    0, btch:   1 usd:   0
Sep  4 10:16:59 uriel kernel: [32571790.564911] CPU    2: hi:    0, btch:   1 usd:   0
Sep  4 10:16:59 uriel kernel: [32571790.564914] CPU    3: hi:    0, btch:   1 usd:   0
Sep  4 10:16:59 uriel kernel: [32571790.564916] Normal per-cpu:
Sep  4 10:16:59 uriel kernel: [32571790.564919] CPU    0: hi:  186, btch:  31 usd: 175
Sep  4 10:16:59 uriel kernel: [32571790.564922] CPU    1: hi:  186, btch:  31 usd: 165
Sep  4 10:16:59 uriel kernel: [32571790.564925] CPU    2: hi:  186, btch:  31 usd:  30
Sep  4 10:16:59 uriel kernel: [32571790.564928] CPU    3: hi:  186, btch:  31 usd: 140
Sep  4 10:16:59 uriel kernel: [32571790.564931] HighMem per-cpu:
Sep  4 10:16:59 uriel kernel: [32571790.564933] CPU    0: hi:  186, btch:  31 usd: 159
Sep  4 10:16:59 uriel kernel: [32571790.564936] CPU    1: hi:  186, btch:  31 usd:  22
Sep  4 10:16:59 uriel kernel: [32571790.564939] CPU    2: hi:  186, btch:  31 usd:  24
Sep  4 10:16:59 uriel kernel: [32571790.564942] CPU    3: hi:  186, btch:  31 usd:  13
Sep  4 10:16:59 uriel kernel: [32571790.564947] active_anon:485974 inactive_anon:121138 isolated_anon:0
Sep  4 10:16:59 uriel kernel: [32571790.564948]  active_file:75215 inactive_file:79510 isolated_file:0
Sep  4 10:16:59 uriel kernel: [32571790.564949]  unevictable:0 dirty:516 writeback:15 unstable:0
Sep  4 10:16:59 uriel kernel: [32571790.564950]  free:230770 slab_reclaimable:36661 slab_unreclaimable:21249
Sep  4 10:16:59 uriel kernel: [32571790.564952]  mapped:20016 shmem:29450 pagetables:5600 bounce:0
Sep  4 10:16:59 uriel kernel: [32571790.564958] DMA free:2884kB min:72kB low:88kB high:108kB active_anon:0kB inactive_anon:0kB active_file:5692kB inactive_file:724kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:15872kB mlocked:0kB dirty:8kB writeback:0kB mapped:0kB shmem:0kB slab_reclaimable:5112kB slab_unreclaimable:156kB kernel_stack:56kB pagetables:0kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no
Sep  4 10:16:59 uriel kernel: [32571790.564964] lowmem_reserve[]: 0 698 4143 4143
Sep  4 10:16:59 uriel kernel: [32571790.564977] Normal free:143468kB min:3344kB low:4180kB high:5016kB active_anon:56kB inactive_anon:2068kB active_file:131812kB inactive_file:131728kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:715256kB mlocked:0kB dirty:156kB writeback:0kB mapped:308kB shmem:4kB slab_reclaimable:141532kB slab_unreclaimable:84840kB kernel_stack:1928kB pagetables:22400kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no
Sep  4 10:16:59 uriel kernel: [32571790.564983] lowmem_reserve[]: 0 0 27559 27559
Sep  4 10:16:59 uriel kernel: [32571790.564995] HighMem free:776728kB min:512kB low:4636kB high:8760kB active_anon:1943840kB inactive_anon:482484kB active_file:163356kB inactive_file:185588kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:3527556kB mlocked:0kB dirty:1900kB writeback:60kB mapped:79756kB shmem:117796kB slab_reclaimable:0kB slab_unreclaimable:0kB kernel_stack:0kB pagetables:0kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no
Sep  4 10:16:59 uriel kernel: [32571790.565001] lowmem_reserve[]: 0 0 0 0
Sep  4 10:16:59 uriel kernel: [32571790.565011] DMA: 385*4kB 16*8kB 3*16kB 9*32kB 6*64kB 2*128kB 1*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 2900kB
Sep  4 10:16:59 uriel kernel: [32571790.565032] Normal: 21505*4kB 6508*8kB 273*16kB 24*32kB 3*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 143412kB
Sep  4 10:16:59 uriel kernel: [32571790.565054] HighMem: 949*4kB 8859*8kB 7063*16kB 6186*32kB 4631*64kB 727*128kB 6*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 776604kB
Sep  4 10:16:59 uriel kernel: [32571790.565076] 198980 total pagecache pages
Sep  4 10:16:59 uriel kernel: [32571790.565079] 14850 pages in swap cache
Sep  4 10:16:59 uriel kernel: [32571790.565082] Swap cache stats: add 2556273, delete 2541423, find 82961339/83153719
Sep  4 10:16:59 uriel kernel: [32571790.565085] Free swap  = 250592kB
Sep  4 10:16:59 uriel kernel: [32571790.565087] Total swap = 385520kB
Sep  4 10:16:59 uriel kernel: [32571790.575454] 1073152 pages RAM
Sep  4 10:16:59 uriel kernel: [32571790.575458] 888834 pages HighMem
Sep  4 10:16:59 uriel kernel: [32571790.575461] 11344 pages reserved
Sep  4 10:16:59 uriel kernel: [32571790.575463] 1090481 pages shared
Sep  4 10:16:59 uriel kernel: [32571790.575465] 737188 pages non-shared

이제 이것이 무엇을 의미하는지 모르겠습니다. 사용 가능한 메모리가 충분합니다.

             total       used       free     shared    buffers     cached
Mem:       4247232    3455904     791328          0       5348     736412
-/+ buffers/cache:    2714144    1533088
Swap:       385520     131004     254516

지금은 스왑이 상대적으로 크기가 작지만 그 문제가 중요합니까?

나는 그 큰 파티션에서의 조각화 또는 inode 사용에 대해 생각하기 시작했지만 최근에 나온 fsck는 단지 0.5 % 조각화 된 것입니다. 어느 것이 나에게 inode 사용법을 남겼지 만, 큰 inode 테이블이나 파일 시스템 TOC가 실제로 어떤 영향을 미칩니 까?

나는 이것에 대한 사람들의 의견을 듣고 싶습니다. 그것은 나를 변기 운전하고 있습니다!

df -h 출력;

Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda1            9.5G  6.6G  2.4G  74% /
tmpfs                 2.1G     0  2.1G   0% /lib/init/rw
udev                   10M  520K  9.5M   6% /dev
tmpfs                 2.1G     0  2.1G   0% /dev/shm
/dev/xvdb             980G  921G   59G  94% /data

xfs_db 출력;

# xfs_db -r -c frag /dev/xvdb
actual 15687263, ideal 15385050, fragmentation factor 1.93%

이것이 32 비트 데비안입니까?
Janne Pikkarainen

네 그렇습니다. "bigmem"커널을 사용합니다.
dannosaur

출력은 df -h무엇입니까?
ewwhite

예, 계속해서 /dev/xvdb파일 시스템 의 조각화 요소를 확인하십시오 .
ewwhite

xfs_db 출력으로 사후 편집. 1.93 %. 그렇게 나쁘지 않습니까?
dannosaur

답변:


4

이 경우 여전히 XFS 파일 시스템 일 수 있습니다. 거의 전체 파일 시스템과 함께 제공되는 속도 저하뿐만 아니라 심각한 조각화 문제가있을 수 있습니다. 두 경우 모두 더 많은 공간을 활용할 수 있습니다.

XFS 파일 시스템의 조각화를 확인하십시오. xfs_db명령 으로이 작업을 수행 할 수 있습니다 . /dev/sdb1예를 들어 파일 시스템이 다음과 같은 경우 명령은 다음과 같습니다.

xfs_db -r -c frag /dev/sdb1

조각화 요소가 출력됩니다.

actual 66524, ideal 55966, fragmentation factor 15.87%

세션 xfs_fsr -v에서 온라인 조각 모음 유틸리티를 실행하여 screen이를 수정할 수 있습니다. 기본적으로 명령은 2 시간 동안 실행되거나 파일 시스템에서 TEN 패스입니다. 여러 번 실행해야 할 수도 있습니다. 실행 사이의 조각화 요소를 확인하십시오.


2

유닉스 파일 시스템은 꽉 찬 것을 좋아하지 않습니다. 느린 파일 시스템을 늘리십시오. 이것이 가능하지 않으면 xfs_fsr 을 사용하여 조각 모음을 시도 하십시오.


0

서버에서 발생하는 상황을 확인하는 데 사용할 수있는 두 가지 도구가 있습니다. iostatiotop 은 문제를 찾는 데 도움이됩니다.

IO와 관련하여 다른 프로세스가 서버에서 갖는 두 가지 우선 순위를 다시 지정하려면 ionice 를 사용할 수 있습니다 . 이것은 문제를 해결하기에 충분할 수도 있지만 아마도 임시 수정일 것입니다. 서버에 대해 다른 스토리지 또는 리소스 할당을 조사 할 수 있습니다.

iostat
Iostat를 사용하여 서버 속도를 늦추는 스토리지 / 메모리 장치를 식별 할 수 있습니다. 좋은 통계가 있습니다. 어떤 장치가 속도를 늦추고 있는지 알면주의를 집중할 위치에 대해 훨씬 더 나은 아이디어를 얻을 수 있습니다.

$ iostat
Linux 3.2.0-30-generic (aaron-laptop) 2012 년 11 월 9 일 _x86_64_ (4 CPU)

평균 CPU : % user % nice % system % iowait % steal % idle
           5,83 0,07 3,00 1,81 0,00 89,29

장치 : tps kB_read / s kB_wrtn / s kB_read kB_wrtn
sda 20,64 231,97 76,26 1290702 424315

iotop
IO가 완료되기를 가장 오래 기다리거나 가장 집중적 인 프로세스를 식별하는 데 유용 합니다.

총 디스크 읽기 : 0.00 B / s | 총 디스크 쓰기 : 9.89 K / s
  TID PRIO 사용자 디스크 읽기 디스크 쓰기 스위치 IO> 명령          
  349 be / 3 루트 0.00 B / s 1012.49 B / s 0.00 % 1.79 % [jbd2 / sda3-8]
    1 be / 4 루트 0.00 B / s 0.00 B / s 0.00 % 0.00 % 초기화
    2 be / 4 루트 0.00 B / s 0.00 B / s 0.00 % 0.00 % [kthreadd]
    3 be / 4 근 0.00 B / s 0.00 B / s 0.00 % 0.00 % [ksoftirqd / 0]

이오니아

 ionice-도움말

ionice-프로세스 클래스 및 우선 순위를 설정하거나 가져옵니다.

용법:
  ionice [OPTION] -p PID [PID ...]
  ionice [OPTION] 명령

옵션 :
  -c, --class 예약 클래스 이름 또는 번호
                           0 : 없음, 1 : 실시간, 2 : 최선 노력, 3 : 유휴
  -n, --classdata 스케줄링 클래스 데이터
                           실시간 및 최선의 수업을위한 0-7
  -p, --pid = PID보기 또는 이미 실행중인 프로세스 수정
  -t, --ignore 무시 실패
  -V, --version 출력 버전 정보 및 종료
  -h, --help이 도움말을 표시하고 종료

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.