Làm thế nào để tìm quá trình thường xuyên ghi vào đĩa?


40

Làm thế nào tôi có thể tìm thấy quá trình liên tục ghi vào đĩa?

Tôi thích máy trạm của mình gần với im lặng và tôi chỉ xây dựng một hệ thống mới (P8B75-M + Core i5 3450s - vì nó có TDP tối đa thấp hơn) với các quạt yên tĩnh, v.v. và đã cài đặt Debian Wheezy 64-bit trên đó

Và một cái gì đó đang làm tôi lo lắng: Tôi có thể nghe thấy một kiểu mẫu nào đó như nếu đĩa cứng đang viết hoặc tìm kiếm đôi khi ( đánh dấu ... đánh dấu ... đánh dấu ... trrrrrr rửa và lặp lại mỗi giây hoặc lâu hơn).

Trước đây tôi có một vấn đề tương tự trong quá khứ (nhiều, nhiều năm trước) và hóa ra đó là một bản ghi CUPS hoặc một cái gì đó và tôi chỉ đơn giản chuyển hướng rằng một (không quan trọng) đăng nhập vào đĩa RAM (thực).

Nhưng ở đây tôi không chắc chắn.

Tôi đã thử như sau:

ls -lR /var/log > /tmp/a.tmp && sleep 5 && ls -lR /var/log > /tmp/b.tmp && diff /tmp/?.tmp

nhưng không có gì thay đổi ở đó

Bây giờ điều kỳ lạ là tôi cũng nghe thấy mẫu khi lời nhắc yêu cầu tôi nhập cụm mật khẩu giải mã LVM của tôi đang hiển thị.

Nó có thể là một cái gì đó trong kernel / hệ thống tôi vừa cài đặt hoặc tôi có một ổ cứng bị lỗi?

hdparm -tT /dev/sda báo cáo tốc độ HD chính xác (130 GB / giây không được lưu trong bộ nhớ cache, sata 6GB) và tôi đã cài đặt và biên dịch từ các nguồn lớn (Emacs) mà không gặp sự cố nên tôi không nghĩ hệ thống này xấu.

(HD là Seagate Barracude 500GB)


Bạn có chắc chắn đó là một ổ cứng tạo ra tiếng ồn đó chứ không phải thứ gì khác không? (Kiểm tra người hâm mộ, bao gồm quạt PSU Đã tiếng click rất lạ một lần khi một dây cáp rất mỏng là quá gần với một fan hâm mộ và sẽ đôi khi rất nhẹ chạm vào lưỡi và truy cập cho một vài "Nhấp chuột" ....)
Mat

@Mat: Tôi sẽ lấy ổ cứng bên ngoài thùng máy (các đầu nối phải đủ dài) để chắc chắn và tôi sẽ báo cáo lại; )
Cedric Martin

2
Hãy chắc chắn rằng hệ thống tập tin đĩa của bạn được gắn kết tương đối hoặc không có thời gian. Việc đọc tệp có thể gây ra ghi vào nút để ghi lại thời gian truy cập.
CAMH

Câu trả lời:


42

Bạn đã cố gắng để kiểm tra những chương trình như iotopđang hiển thị? Nó sẽ cho bạn biết một cách rõ ràng loại quy trình hiện đang ghi vào đĩa.

đầu ra ví dụ:

Total DISK READ: 0.00 B/s | Total DISK WRITE: 0.00 B/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND
    1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % init
    2 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kthreadd]
    3 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/0]
    6 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [migration/0]
    7 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [watchdog/0]
    8 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [migration/1]
 1033 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [flush-8:0]
   10 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/1]

1
cảm ơn vì lời khuyên đó Tôi không biết về iotop . Trên Debian tôi đã thực hiện tìm kiếm apt-cache iotop để tìm ra rằng tôi phải apt-get iotop . Lệnh rất tuyệt!
Cedric Martin

3
Tôi sử dụng iotop -o -b -d 10mà cứ sau 10 giây sẽ in một danh sách các quá trình đọc / ghi vào đĩa và lượng băng thông IO được sử dụng.
ndemou

15

Bạn có thể bật gỡ lỗi IO thông qua echo 1 > /proc/sys/vm/block_dumpvà sau đó xem các thông báo gỡ lỗi trong / var / log / syslog . Điều này có lợi thế là có được một số loại tệp nhật ký với các hoạt động trong quá khứ trong khi iotopchỉ hiển thị hoạt động hiện tại.


3
Thật là điên rồ khi để sysloging được kích hoạt khi block_dump được kích hoạt. Khai thác gỗ nguyên nhân hoạt động đĩa, gây khai thác gỗ, khiến hoạt động đĩa vv Better dừng syslog trước khi kích hoạt này (và sử dụng dmesg để đọc các tin nhắn)
dan3

Bạn hoàn toàn đúng, mặc dù hiệu ứng không ấn tượng như bạn mô tả. Nếu bạn chỉ muốn có một cái nhìn ngắn về hoạt động của đĩa thì không cần phải dừng trình nền syslog.
scai

Tôi đã thử nó khoảng 2 năm trước và nó khiến máy của tôi dừng lại. Một trong những ngày này khi tôi không có gì quan trọng để chạy, tôi sẽ thử lại :)
dan3 16/07/13

Tôi đã thử nó, không có gì thực sự xảy ra. Đặc biệt là vì hệ thống tập tin đệm. Ghi vào syslog không ngay lập tức kích hoạt ghi vào đĩa.
scai

1
Tôi cho rằng sẽ có giới hạn tỷ lệ chung cho các thông điệp tường trình, cũng xử lý trường hợp này (?)
Volker Siegel

5

Giả sử rằng tiếng ồn của đĩa là do một quá trình gây ra ghi và không phải do một số vấn đề về trục chính đĩa , bạn có thể sử dụng hệ thống con kiểm toán (cài đặt auditdgói ). Đặt một chiếc đồng hồ trên các synccuộc gọi và bạn bè của nó:

auditctl -S sync -S fsync -S fdatasync -a exit,always

Xem các bản ghi trong /var/log/audit/audit.log. Hãy cẩn thận để không làm điều này nếu bản ghi kiểm toán bị tuôn ra! Kiểm tra /etc/auditd.confxem flushtùy chọn được đặt thành none.

Nếu các tệp đang bị xóa thường xuyên, một thủ phạm có khả năng là nhật ký hệ thống. Ví dụ: nếu bạn đăng nhập các lần thử kết nối không thành công và ai đó đang thăm dò máy của bạn, điều đó sẽ tạo ra rất nhiều mục; điều này có thể khiến đĩa phát ra tiếng ồn kiểu súng máy. Với sysklogd nhật ký cơ bản, hãy kiểm tra /etc/syslog.conf: nếu tên tệp nhật ký không được đặt trước -, thì nhật ký đó sẽ được xóa vào đĩa sau mỗi lần ghi.


@StephenKitt Huh. Không. Người hỏi đã đề cập đến Debian vì vậy tôi đã thay đổi nó thành một liên kết đến gói Debian.
Gilles 'SO- ngừng trở nên xấu xa'

3

Nó có thể là ổ đĩa của bạn tự động quay xuống, rất nhiều ổ đĩa tiêu dùng làm điều đó những ngày này. Thật không may trên ngay cả một hệ thống được tải nhẹ, điều này dẫn đến việc các ổ đĩa liên tục quay xuống và sau đó quay lại, đặc biệt là nếu bạn đang chạy hddtemp hoặc tương tự để theo dõi nhiệt độ ổ đĩa (hầu hết các ổ đều không cho phép bạn truy vấn giá trị nhiệt độ SMART mà không quay lên ổ đĩa - cretinous!).

Điều này không chỉ gây khó chịu, nó có thể làm hao mòn các ổ đĩa nhanh hơn vì nhiều ổ đĩa chỉ có một số chu kỳ công viên giới hạn. ví dụ: xem https://bugs.launchpad.net/ubfox/+source/hdparm/+orms/952556 để biết mô tả về sự cố.

Tôi vô hiệu hóa spindown trên tất cả các ổ đĩa của mình với bit shell sau đây. bạn có thể đặt nó trong tập lệnh /etc/rc.boot hoặc trong /etc/rc.local hoặc tương tự.

cho đĩa trong / dev / sd? ; làm
  / sbin / hdparm -q -S 0 "$ đĩa"
làm xong

2
rằng bạn không thể truy vấn các bài đọc SMART mà không quay ổ đĩa khiến tôi không nói nên lời: - / Bây giờ rõ ràng vấn đề "quay xuống" có thể trở nên khá phức tạp. Về việc vô hiệu hóa việc quay xuống: chính điều đó có khiến HD bị hao mòn nhanh hơn không? Ý tôi là: nó không bao giờ "nghỉ ngơi" chừng nào hệ thống còn hoạt động?
Cedric Martin

IIRC bạn có thể truy vấn một số giá trị SMART mà không khiến ổ đĩa quay lên, nhưng nhiệt độ không phải là một trong số chúng trên bất kỳ ổ đĩa nào tôi đã thử nghiệm (bao gồm các mô hình từ WD, Seagate, Samsung, Hitachi). Tất nhiên, điều đó thật điên rồ vì lo ngại về nhiệt độ là một trong những lý do khiến bạn không sử dụng được ổ đĩa. re: wear: AIUI 1. vận tốc không đổi ít hao mòn hơn thay đổi tốc độ. 2. các ổ đĩa phải đỗ đầu trong một khu vực an toàn và một ổ đĩa chỉ được đánh giá để làm điều đó rất nhiều lần (IIRC lên đến vài trăm nghìn - dễ dàng vượt quá nếu ổ đĩa không hoạt động và quay vòng cứ sau vài giây)
cas

Đó là một cuộc tranh luận dài về việc tốt hơn là để các ổ đĩa chạy hoặc quay chúng xuống. Cá nhân tôi tin rằng tốt nhất là để chúng chạy - tôi tắt máy tính vào ban đêm và khi tôi đi ra ngoài nhưng tôi không bao giờ làm hỏng ổ đĩa của mình. Một số người thích quay chúng xuống, nói rằng, vào ban đêm nếu họ để máy tính bật hoặc nếu máy tính không hoạt động trong một thời gian dài, và trong những trường hợp như vậy, lợi thế của việc quay chúng xuống trong vài giờ so với việc để chúng chạy là điều gây tranh cãi . Mặc dù vậy, điều không bao giờ tốt là khi ổ cứng liên tục quay vòng lên xuống trong một khoảng thời gian ngắn.
Micheal Johnson

Cũng lưu ý rằng việc quay ổ đĩa xuống sau khi không hoạt động trong vài giờ là hơi ngớ ngẩn, bởi vì nếu nó không hoạt động trong vài giờ thì có khả năng nó sẽ được sử dụng lại trong vòng một giờ. Trong trường hợp đó, có vẻ tốt hơn là quay ổ đĩa xuống ngay lập tức nếu nó không hoạt động (như trong vòng 10 phút), nhưng ổ đĩa cũng không hoạt động trong vài phút khi ai đó đang sử dụng máy tính và có khả năng cần ổ đĩa lại sớm.
Micheal Johnson

Tôi nghĩ chắc chắn rằng điều này sẽ khắc phục vấn đề của tôi khi tôi nghe thấy ổ đĩa phát ra âm thanh lách cách định kỳ (3-4 lần / giây) giống như nó đang viết ngay cả khi nó không được gắn! Nhưng tôi vẫn nghe thấy tiếng ồn sau khi chạy lệnh này. Đáng lo ngại, đó là ổ đĩa tôi sử dụng để sao lưu ổ SSD bên trong của mình ...
Michael

1

Tôi chỉ thấy rằng thông minh đã khiến một đĩa USB bên ngoài quay đi quay lại trên pi mâm xôi của tôi. Mặc dù SMART nói chung là một điều tốt, tôi đã quyết định vô hiệu hóa nó một lần nữa và kể từ đó, dường như hoạt động đĩa không mong muốn đã dừng lại


Bạn có thể cấu hình trình nền thông minh không quét đĩa USB, hầu hết các bản phân phối linux tốt đều làm điều này theo mặc định.
lzap

1

Bạn có thể lập dị về điều này một chút. Nên thu hẹp nó xuống cho hầu hết.

find / -mount -newer /proc -print

Cung cấp các tệp được sửa đổi kể từ khi khởi động trên thiết bị vật lý của hệ thống / tệp. Biết các tập tin có thể sẽ giúp xác định người viết.


1

Trong trường hợp bạn cần thu hẹp nó xuống một đĩa chính xác, hãy sử dụng như sau:

chạy lsblkvà tra cứu số thiết bị. Trong trường hợp dưới đây là9:126

NAME        MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda           8:0    0   7.3T  0 disk  
└─md126       9:126  0  13.8T  0 raid0 /mnt/InternalPhase
sdb           8:16   0   7.3T  0 disk  
└─md126       9:126  0  13.8T  0 raid0 /mnt/InternalPhase
sdc           8:32   0   7.3T  0 disk  
└─sdc1        8:33   0   7.3T  0 part  /mnt/InternalFBE

chạy lsof | grep '9,126'với sự :thay thế ,so với số đĩa trên. Trong trường hợp của tôi, điều này hiện lên như:

bash      389162            root  cwd       DIR              9,126      4096  449183796 /mnt/InternalPhase/0000000001/CHANNEL01/LIVE/PHASE/DATA/2018/10/04

với bộ lọc 389162tiêu diệt quá trình này bằng cách sử dụng:

kill -9 389162

-1

Vấn đề là hệ thống cần phải xóa dữ liệu từ bộ đệm đĩa sang đĩa cứ sau 5 giây hoặc lâu hơn. Do đó, nếu đĩa quay xuống, sẽ có ít lựa chọn khác ngoài quay ngược trở lại khi cần xả nước. Vì vậy, vấn đề không thực sự có thể tránh được ngoài việc vô hiệu hóa các vòng quay hoặc tính năng quản lý năng lượng đĩa hoàn toàn hdparm -B 255 /dev/hdax. Đây có lẽ là lựa chọn tốt hơn kể từ khi khởi động lại thường xuyên như vậy chắc chắn có thể gây hại nhiều hơn là chỉ đơn giản là ở lại mọi lúc.


1
Nó sẽ chỉ xóa dữ liệu nếu có bất kỳ dữ liệu nào để xóa. Nếu đĩa thực sự không được sử dụng, thì sẽ không có bất kỳ dữ liệu đệm nào để xóa.
Micheal Johnson
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.