Tại sao máy tính để bàn của tôi bị khóa khi tôi sao chép nhiều tệp vào ổ USB?


11

Máy tính để bàn của tôi thường rất nhạy, ngay cả khi tải nặng. Nhưng khi tôi sao chép tập tin vào ổ USB, nó sẽ luôn bị khóa sau một thời gian. Bằng cách "khóa", ý tôi là:

  • Di chuyển tiêu điểm từ cửa sổ này sang cửa sổ khác có thể mất 10-20 giây
  • Chuyển đổi máy tính để bàn có thể mất 10-20 giây
  • Video không cập nhật nữa (trong YouTube, âm thanh tiếp tục phát, chỉ có video bị đóng băng)

Tải hệ thống không quá cao khi điều này xảy ra. Đôi khi, tôi thấy rất nhiều màu trắng trên xosview chỉ ra rằng kernel đang bận ở đâu đó.

Thoạt nhìn, có vẻ như việc sao chép các tệp vào ổ USB sẽ can thiệp bằng cách nào đó với compiz nhưng tôi không thể tưởng tượng được kết nối có thể là gì.

Đây là đầu ra của htop:

Đầu ra của htop ngay sau khi treo

Đây là đầu ra của iostat -c -z -t -x -d 1trong thời gian treo 2 phút:

19.07.2012 20:38:22
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1,27    0,00    0,38   37,52    0,00   60,84

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sdg               0,00     2,00    0,00  216,00     0,00 109248,00  1011,56   247,75  677,69    0,00  677,69   4,63 100,00

Như bạn có thể thấy, chỉ có ổ cứng ngoài đang hoạt động. Đây là nhật ký đầy đủ: http://pastebin.com/YNWTAkh4

Hang bị bắt đầu lúc 20:38:01 và kết thúc lúc 20:40:19.

Thông tin phần mềm:

  • mởSUSE 12.1
  • KDE 4.7.x
  • Hệ thống tập tin: reiserfs và btrfs trên ổ cứng nội bộ của tôi, btrfs trên ổ USB

1
Bạn đã thử gắn ổ USB syncđể xem nó có tác dụng gì (nếu có) không?
Alexios

2
Một nhược điểm của USB là thực tế là nó phụ thuộc rất nhiều vào CPU cho IO. Hệ thống của bạn có loại CPU nào? grep name /proc/cpuinfoVui lòng nối đầu ra của câu hỏi của bạn.
jippie

1
Bạn có kéo và thả các tập tin bằng cách sử dụng cá heo? Nếu vậy, hãy thử cptừ dòng lệnh để loại trừ các lỗi cá heo có thể.
Jari Laamanen

@JariLaamanen: Tôi đang sử dụng rsynctừ dòng lệnh.
Aaron Digulla

1
@jippie: Không thực sự vì UI bị khóa khi nó xảy ra, vì vậy tôi không thể tạo ảnh chụp màn hình. Tôi sẽ cố gắng tạo một bản ghi vớiiostat -c -z -d 1
Aaron Digulla

Câu trả lời:


4

Suy đoán đầu tiên của tôi là btrfsdo các quá trình I / O của hệ thống tệp này đôi khi tiếp quản. Nhưng nó sẽ không giải thích tại sao X khóa.

Nhìn vào các ngắt, tôi thấy điều này:

# cat /proc/interrupts 
           CPU0       CPU1       CPU2       CPU3       CPU4       CPU5       CPU6       CPU7       
  0:        179          0          0          0          0          0          0          0  IR-IO-APIC-edge      timer
  1:          6          0          0          0          0          0          0          0  IR-IO-APIC-edge      i8042
  8:          1          0          0          0          0          0          0          0  IR-IO-APIC-edge      rtc0
  9:          0          0          0          0          0          0          0          0  IR-IO-APIC-fasteoi   acpi
 12:         10          0          0          0          0          0          0          0  IR-IO-APIC-edge      i8042
 16:    3306384          0          0          0          0          0          0          0  IR-IO-APIC-fasteoi   ehci_hcd:usb1, nvidia, mei, eth1

Vâng, duh. Trình điều khiển USB sử dụng IRQ giống như card đồ họa và nó là đầu tiên trong chuỗi. Nếu nó bị khóa (vì hệ thống tệp làm một cái gì đó đắt tiền), card đồ họa sẽ chết (và cả mạng nữa).


2

Tôi đã thấy các vấn đề tương tự với kernel linux-3.1 của openSUSE 12.1 và thấy rằng việc vô hiệu hóa các trang lớn trong suốt đã giúp:

echo never > /sys/kernel/mm/transparent_hugepage/enabled

Vấn đề cơ bản là nếu một ứng dụng phân bổ 4 MB trở lên, kernel sẽ cố gắng cung cấp cho nó một trang lớn, mà nó cần toàn bộ RAM 4 MB liền kề. Bây giờ, nếu có nhiều trang bẩn xung quanh, vẫn cần phải ghi vào thiết bị USB chậm, nó chờ IO đó kết thúc trước khi tiếp tục phân bổ bộ nhớ.


1

Như đã đề cập, điều này có lẽ phải làm với thiết lập các vùng đệm kernel. Tôi biết một số người có vấn đề này. Bạn có thể tìm thấy một số tài liệu về nó trên web, vd

Tôi đã khắc phục hoàn toàn sự cố trên thiết lập của mình bằng cách thực hiện như sau. Lưu ý YMMV, không phải tất cả các bản sửa lỗi dưới đây đều có thể cần thiết và có thể chúng sẽ không đủ. Tôi có thể đã quên một cái gì đó để thành thật. Dù sao đó là thiết lập của tôi và nó hoạt động.

  • Sử dụng nhân linux-ck
  • echo madvise > /sys/kernel/mm/transparent_hugepage/enabled
  • echo never > /sys/kernel/mm/transparent_hugepage/defrag

-2

Thay đổi cáp. Loại bỏ oxy từ cổng / cáp usb.


Nó cần phải được xây dựng một chút chi tiết. Vui lòng xem FAQ
Karlson
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.