Truy cập hệ thống tập tin chậm


10

Tôi đang cố gắng chẩn đoán sự cố hệ thống tệp chậm trên máy chủ mà tôi chăm sóc. Nó đã diễn ra khá lâu và tôi đã hết ý tưởng về những gì tôi có thể thử. Đây là độ dày của nó.

Bản thân máy chủ là Dell Poweredge T 310. Nó có 4 ổ cứng SAS, được cấu hình ở RAID5 và đang chạy Citrix XenServer 5.6. VM là bản cài đặt Debian 5.0.6 cũ (tương đối). Nó được cung cấp 4 nhân và RAM 4Gb. Nó có 3 tập. Âm lượng 10Gb (ext3) cho hệ thống, âm lượng 980Gb (xfs) cho dữ liệu (~ 94% đầy đủ) và âm lượng 200Gb khác (xfs) cho dữ liệu (~ 13% đầy đủ).

Bây giờ đây là điều kỳ lạ. Truy cập đọc / ghi vào âm lượng 980Gb rất chậm. Tôi có thể nhận được 5Mb / s trong số đó nếu tôi may mắn. Lúc đầu, tôi nghĩ rằng nó thực sự là truy cập đĩa trong hệ thống, hoặc ở mức độ ảo hóa, nhưng loại trừ hoàn toàn vì các máy ảo khác trên cùng một máy chủ đang chạy hoàn toàn tốt (truy cập r / w đĩa vài trăm Mb / giây). Vì vậy, sau đó tôi bắt đầu nhắm mục tiêu VM đặc biệt này. Tôi bắt đầu nghĩ rằng đó là XFS, nhưng để chứng minh rằng tôi sẽ không cố gắng thay đổi hệ thống tập tin trên ổ đĩa 980Gb, với hàng năm và hàng tỷ tập tin trên đó. Vì vậy, tôi đã cung cấp ổ đĩa 200Gb và thực hiện cùng một bài kiểm tra đọc / ghi (về cơ bản là dd) và có được một vài trăm Mb / sr / w quyền truy cập vào nó. Vì vậy, loại trừ VM, phần cứng và loại hệ thống tập tin.

Cũng có rất nhiều trong số này trong /var/log/kern.log; (xin lỗi, cái này khá dài)

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

Bây giờ, tôi không biết điều này có nghĩa là gì. Có rất nhiều bộ nhớ miễn phí;

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

Mặc dù bây giờ tôi thấy hoán đổi có kích thước tương đối thấp, nhưng điều đó có quan trọng không?

Tôi đã bắt đầu suy nghĩ về việc phân mảnh hoặc sử dụng inode trên phân vùng lớn đó, nhưng một fsck gần đây trên nó cho thấy chỉ giống như phân mảnh 0,5%. Điều này khiến tôi sử dụng inode, nhưng bao nhiêu hiệu ứng thực sự mà một bảng inode lớn hoặc TOC hệ thống tập tin có?

Tôi rất thích nghe ý kiến ​​của mọi người về điều này. Nó đang khiến tôi ngồi bô!

đầu ra 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

đầu ra xfs_db;

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

Đây có phải là Debian 32 bit không?
Janne Pikkarainen

Vâng, đúng vậy. sử dụng kernel "bigmem".
dannizard

Đầu ra của là df -hgì?
ewwhite

Vâng, hãy tiếp tục và kiểm tra hệ số phân mảnh của /dev/xvdbhệ thống tập tin.
ewwhite

chỉnh sửa bài đăng với đầu ra xfs_db. 1,93%. chắc chắn không tệ
dannizard

Câu trả lời:


4

Nó vẫn có thể là hệ thống tập tin XFS trong trường hợp này. Bạn có thể có các vấn đề phân mảnh nặng nề cũng như sự chậm chạp đi kèm với một hệ thống tập tin gần như đầy đủ. Bạn có thể hưởng lợi từ nhiều không gian hơn trong cả hai trường hợp.

Vui lòng kiểm tra phân mảnh của hệ thống tập tin XFS. Bạn có thể làm điều này với xfs_dblệnh. Nếu hệ thống tập tin là /dev/sdb1, ví dụ, thì lệnh của bạn sẽ như sau:

xfs_db -r -c frag /dev/sdb1

Điều đó sẽ tạo ra một yếu tố phân mảnh:

actual 66524, ideal 55966, fragmentation factor 15.87%

Bạn có thể chạy tiện ích chống phân mảnh trực tuyến xfs_fsr -v, trong một screenphiên để cố gắng khắc phục điều này. Theo mặc định, lệnh chạy trong 2 giờ hoặc TEN truyền trên hệ thống tệp. Bạn có thể phải chạy nó nhiều lần. Kiểm tra hệ số phân mảnh giữa các lần chạy.


2

Hệ thống tập tin Unix không thích đầy đủ. Hãy thử phát triển hệ thống tập tin chậm. Nếu điều đó là không thể, hãy thử chống phân mảnh bằng xfs_fsr


0

Có hai công cụ bạn có thể sử dụng để xem những gì đang xảy ra trên máy chủ của mình. iostatiotop , sẽ giúp bạn xác định vấn đề.

Nếu bạn muốn xác định lại hai ưu tiên mà quy trình khác nhau có trên máy chủ của bạn liên quan đến IO, bạn có thể sử dụng ionice . Điều này có thể là đủ để khắc phục vấn đề của bạn, nhưng nó có thể là một sửa chữa tạm thời. Bạn có thể muốn xem xét việc lưu trữ hoặc phân bổ tài nguyên khác nhau cho máy chủ của mình.

iostat
iostat có thể được sử dụng để xác định lưu trữ / thiết bị bộ nhớ đang làm chậm máy chủ của bạn. Nó có một số thống kê tốt đẹp iowait. Một khi bạn biết thiết bị nào đang làm mọi thứ chậm lại, bạn có thể có một ý tưởng tốt hơn nhiều về việc tập trung sự chú ý của bạn vào đâu.

$ iter
Linux 3.2.0-30-generic (aaron-laptop) 11/09/2012 _x86_64_ (4 CPU)

avg-cpu:% người dùng% đẹp% hệ thống% iowait% ăn cắp% nhàn rỗi
           5,83 0,07 3,00 1,81 0,00 89,29

Thiết bị: tps kB_read / s kB_wrtn / s kB_read kB_wrtn
sda 20,64 231,97 76,26 1290702 424315

iotop
Thật tuyệt vời để xác định quá trình nào đang chờ IO lâu nhất để kết thúc hoặc là quá trình io chuyên sâu nhất.

Tổng số DISK ĐỌC: 0,00 B / s | Tổng số VIẾT DISK: 9,89 K / s
  TID PRIO NGƯỜI DÙNG DISK ĐỌC DISK VIẾT SWAPIN IO> LỰA CHỌN          
  349 be / 3 gốc 0,00 B / s 1012,49 B / s 0,00% 1,79% [jbd2 / sda3-8]
    1 được / 4 gốc 0,00 B / s 0,00 B / s 0,00% 0,00% init
    2 be / 4 gốc 0,00 B / s 0,00 B / s 0,00% 0,00% [kthreadd]
    3 được / 4 gốc 0,00 B / s 0,00 B / s 0,00% 0,00% [ksoftirqd / 0]

ionice

 ionice - giúp đỡ

ionice - thiết lập hoặc được ưu tiên lớp lập lịch io và ưu tiên.

Sử dụng:
  ionice [TÙY CHỌN] -p PID [PID ...]
  ionice [TÙY CHỌN]

Tùy chọn:
  -c, - lớp hoặc tên lớp lập lịch
                           0: không, 1: thời gian thực, 2: nỗ lực nhất, 3: nhàn rỗi
  -n, - classdata lập lịch dữ liệu lớp
                           0-7 cho các lớp học thời gian thực và nỗ lực nhất
  -p, --pid = Chế độ xem PID hoặc sửa đổi quy trình đã chạy
  -t, - bỏ qua những thất bại
  -V, --version thông tin phiên bản đầu ra và thoát
  -h, --hỗ trợ hiển thị trợ giúp này và thoát

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.