LINUX.ORG.RU
ФорумAdmin

Как узнать, кто непрерывно пишет на диск, если никто не пишет?

 


1

4

У меня artix linux на компе и на загрузочном portable ssd, почти идентичные системы. После где-то полугодичного перерыва грузанулся в ssd чтобы его обновить. Обновил, перегрузился – всё работает, но идёт непрерывная запись на ssd на максимальной скорости, почти без остановки: gkrellm показывает, и светодиод на ssd непрерывно моргает. И сдаётся мне, редкие паузы там только потому что SSD отказывается принимать новые данные пока старые не раскидает.

iotop -a показывает с гулькин хрен – только jdb2 немного, несопоставимо по объёмам.
UPD: Вернее, в строке заголовка он показывает большой общий объём записи (Actual DISK WRITE:), а в разбивке по процессам – хрен.

Грузился в runlevel 1 без графики и сети – всё равно моргает непрерывно.

Насколько я себе представляю, если бы только сам SSD внутри себя освежал давно не перезаписывавшиеся данные, он бы сильно грелся, но gkrellm запись не показывал бы.

Думал, может драйвер ядра форсирует освежение, но пока я копировал конфиги с основной системы на ssd, непрерывная запись на него не шла.

Как искать виноватого?

★★★★★

Последнее исправление: dimgel (всего исправлений: 3)
Ответ на: комментарий от anonymous

Должны быть, да нету:

# smartctl -a -d scsi /dev/sda
smartctl 7.4 2023-08-01 r5530 [x86_64-linux-6.6.16-1-lts] (local build)
Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Vendor:               StoreJet
Product:              StoreJet Transce
Revision:             0
Compliance:           SPC-4
User Capacity:        480,103,981,056 bytes [480 GB]
Logical block size:   512 bytes
LU is fully provisioned
Rotation Rate:        Solid State Device
Form Factor:          2.5 inches
Logical Unit id:      0x5000000000000001
Serial number:        2400E360932FF4339135
Device type:          disk
Local Time is:        Sun Feb 18 13:37:48 2024 MSK
SMART support is:     Available - device has SMART capability.
SMART support is:     Enabled
Temperature Warning:  Disabled or Not Supported

=== START OF READ SMART DATA SECTION ===
SMART Health Status: OK
Current Drive Temperature:     0 C
Drive Trip Temperature:        0 C

Error Counter logging not supported

Device does not support Self Test logging
dimgel ★★★★★
() автор топика
Ответ на: комментарий от firkax

Граба нет, есть efistub, пока ввожу пароль для cryptsetup в initramfs – не горит.

Дописал в ОП: UPD: Вернее, в строке заголовка он (iotop) показывает большой общий объём записи (Actual DISK WRITE:), а в разбивке по процессам – хрен.

dimgel ★★★★★
() автор топика
Последнее исправление: dimgel (всего исправлений: 2)
Ответ на: комментарий от dimgel

https://club.dns-shop.ru/review/t-124-vneshie-ssd/28444-vskryivaem-i-testiruem-vneshnii-ssd-esd240c/

Это usb мост к m.2, поперебирай другие опции, которые smartctl умеет к примеру у меня

 smartctl -a /dev/sda -d q
smartctl 7.4 2023-08-01 r5530 [x86_64-linux-6.1.64-1-MANJARO] (local build)
Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org

/dev/sda: Unknown device type 'q'
=======> VALID ARGUMENTS ARE: ata, scsi[+TYPE], nvme[,NSID], sat[,auto][,N][+TYPE], usbasm1352r,N, usbcypress[,X], usbjmicron[,p][,x][,N], usbprolific, usbsunplus, sntasmedia, sntjmicron[,NSID], sntrealtek, jmb39x[-q],N[,sLBA][,force][+TYPE], jms56x,N[,sLBA][,force][+TYPE], areca,N/E, 3ware,N, hpt,L/M/N, megaraid,N, aacraid,H,L,ID, sssraid,E,S, cciss,N, auto, test <=======

И среди всей этой кучи работает(увы раз через раз)

# smartctl -a /dev/sda -d sntjmicron
smartctl 7.4 2023-08-01 r5530 [x86_64-linux-6.1.64-1-MANJARO] (local build)
Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Number:                       INTEL HBRPEKNX0202AH
Serial Number:                      PHTE950001VH512B-1
Firmware Version:                   HPS1
PCI Vendor/Subsystem ID:            0x8086
IEEE OUI Identifier:                0x5cd2e4
Controller ID:                      1
NVMe Version:                       1.3
Number of Namespaces:               1
Namespace 1 Size/Capacity:          512 110 190 592 [512 GB]
Namespace 1 Formatted LBA Size:     512
Namespace 1 IEEE EUI-64:            5cd2e4 5c91310159
Local Time is:                      Sun Feb 18 14:01:25 2024 MSK
Firmware Updates (0x14):            2 Slots, no Reset required
Optional Admin Commands (0x0016):   Format Frmw_DL Self_Test
Optional NVM Commands (0x005f):     Comp Wr_Unc DS_Mngmt Wr_Zero Sav/Sel_Feat Timestmp
Log Page Attributes (0x0f):         S/H_per_NS Cmd_Eff_Lg Ext_Get_Lg Telmtry_Lg
Maximum Data Transfer Size:         32 Pages
Warning  Comp. Temp. Threshold:     77 Celsius
Critical Comp. Temp. Threshold:     80 Celsius

Supported Power States
St Op     Max   Active     Idle   RL RT WL WT  Ent_Lat  Ex_Lat
 0 +     3.50W       -        -    0  0  0  0        0       0
 1 +     2.70W       -        -    1  1  1  1        0       0
 2 +     2.00W       -        -    2  2  2  2        0       0
 3 -   0.0250W       -        -    3  3  3  3     2000    5000
 4 -   0.0040W       -        -    4  4  4  4     5000    9000

Supported LBA Sizes (NSID 0x1)
Id Fmt  Data  Metadt  Rel_Perf
 0 +     512       0         0

=== START OF SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

SMART/Health Information (NVMe Log 0x02)
Critical Warning:                   0x00
Temperature:                        37 Celsius
Available Spare:                    100%
Available Spare Threshold:          10%
Percentage Used:                    24%
Data Units Read:                    40 490 270 [20,7 TB]
Data Units Written:                 58 579 523 [29,9 TB]
Host Read Commands:                 553 663 408
Host Write Commands:                679 402 866
Controller Busy Time:               16 837
Power Cycles:                       1 965
Power On Hours:                     14 877
Unsafe Shutdowns:                   115
Media and Data Integrity Errors:    0
Error Information Log Entries:      0
Warning  Comp. Temperature Time:    0
Critical Comp. Temperature Time:    0
Flotsky ★★
()
Ответ на: комментарий от dimgel

Я недавно хотел выяснить откуда конкретно iotop берёт все свои данные, но так и не выяснил. Поэтому версии две:

  1. у тебя рождается/умирает куча процессов, каждый тратит по чуть-чуть диска, но в топе их не видно т.к. каждый по отдельности мелкий, да и вообще возможно не доживает до того момента, когда iotop его учтёт (это надо чтоб он прожил как минимум 1 тик между двумя его статистиками), кстати то же самое относится и к нагрузке на проц (не в твоём случае а вообще - мелкие короткие процессы обычный top может не замечать)

  2. возможно, iotop не учиытвает в по-процессном разбиении ядерную активность, исходящую например от драйвера файловой системы по собственной инициативе - какая у тебя фс?

firkax ★★★★★
()
Ответ на: комментарий от Flotsky

поперебирай другие опции

Хм, а сработало. Сенькс. :) А когда я его только взял, опций было сильно меньше, помню что тоже все перепробовал.

Но общие числа прочитано-записано какие-то крошечные, выходит система гонит ему какой-то управляющий трафик?

# smartctl -x -d sat /dev/sda
smartctl 7.4 2023-08-01 r5530 [x86_64-linux-6.6.16-1-lts] (local build)
Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Device Model:     TS480GESD240C
Serial Number:    881931CCF23906300028
LU WWN Device Id: 0 000000 000000000
Firmware Version: R0412A0
User Capacity:    480,103,981,056 bytes [480 GB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    Solid State Device
Form Factor:      2.5 inches
TRIM Command:     Available, deterministic
Device is:        Not in smartctl database 7.3/5528
ATA Version is:   ACS-2 T13/2015-D revision 3
SATA Version is:  SATA 3.2, 6.0 Gb/s (current: 1.5 Gb/s)
Local Time is:    Sun Feb 18 14:12:35 2024 MSK
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
AAM feature is:   Unavailable
APM level is:     128 (minimum power consumption without standby)
Rd look-ahead is: Enabled
Write cache is:   Enabled
DSN feature is:   Unavailable
ATA Security is:  Disabled, NOT FROZEN [SEC1]
Wt Cache Reorder: Unavailable

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x00) Offline data collection activity
                                        was never started.
                                        Auto Offline Data Collection: Disabled.
Self-test execution status:      (   0) The previous self-test routine completed
                                        without error or no self-test has ever 
                                        been run.
Total time to complete Offline 
data collection:                (  120) seconds.
Offline data collection
capabilities:                    (0x11) SMART execute Offline immediate.
                                        No Auto Offline data collection support.
                                        Suspend Offline collection upon new
                                        command.
                                        No Offline surface scan supported.
                                        Self-test supported.
                                        No Conveyance Self-test supported.
                                        No Selective Self-test supported.
SMART capabilities:            (0x0002) Does not save SMART data before
                                        entering power-saving mode.
                                        Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                                        General Purpose Logging supported.
Short self-test routine 
recommended polling time:        (   2) minutes.
Extended self-test routine
recommended polling time:        (  10) minutes.

SMART Attributes Data Structure revision number: 1
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAGS    VALUE WORST THRESH FAIL RAW_VALUE
  1 Raw_Read_Error_Rate     -O--CK   100   100   050    -    0
  5 Reallocated_Sector_Ct   -O--CK   100   100   050    -    0
  9 Power_On_Hours          -O--CK   100   100   050    -    264
 12 Power_Cycle_Count       -O--CK   100   100   050    -    675
160 Unknown_Attribute       -O--CK   100   100   050    -    0
161 Unknown_Attribute       PO--CK   100   100   050    -    100
163 Unknown_Attribute       -O--CK   100   100   050    -    172
164 Unknown_Attribute       -O--CK   100   100   050    -    29878
165 Unknown_Attribute       -O--CK   100   100   050    -    101
166 Unknown_Attribute       -O--CK   100   100   050    -    1
167 Unknown_Attribute       -O--CK   100   100   050    -    10
168 Unknown_Attribute       -O--CK   100   100   050    -    1000
169 Unknown_Attribute       -O--CK   100   100   050    -    99
175 Program_Fail_Count_Chip -O--CK   100   100   050    -    0
176 Erase_Fail_Count_Chip   -O--CK   100   100   050    -    0
177 Wear_Leveling_Count     -O--CK   100   100   050    -    0
178 Used_Rsvd_Blk_Cnt_Chip  -O--CK   100   100   050    -    0
181 Program_Fail_Cnt_Total  -O--CK   100   100   050    -    0
182 Erase_Fail_Count_Total  -O--CK   100   100   050    -    0
192 Power-Off_Retract_Count -O--CK   100   100   050    -    655
194 Temperature_Celsius     -O---K   100   100   050    -    39
195 Hardware_ECC_Recovered  -O--CK   100   100   050    -    0
196 Reallocated_Event_Count -O--CK   100   100   050    -    0
197 Current_Pending_Sector  -O--CK   100   100   050    -    0
198 Offline_Uncorrectable   -O--CK   100   100   050    -    0
199 UDMA_CRC_Error_Count    -O--CK   100   100   050    -    12
232 Available_Reservd_Space -O--CK   100   100   050    -    100
241 Total_LBAs_Written      ----CK   100   100   050    -    39036
242 Total_LBAs_Read         ----CK   100   100   050    -    49467
245 Unknown_Attribute       -O--CK   100   100   050    -    40494
                            ||||||_ K auto-keep
                            |||||__ C event count
                            ||||___ R error rate
                            |||____ S speed/performance
                            ||_____ O updated online
                            |______ P prefailure warning

General Purpose Log Directory Version 1
SMART           Log Directory Version 1 [multi-sector log support]
Address    Access  R/W   Size  Description
0x00       GPL,SL  R/O      1  Log Directory
0x01           SL  R/O      1  Summary SMART error log
0x02           SL  R/O      1  Comprehensive SMART error log
0x03       GPL     R/O      1  Ext. Comprehensive SMART error log
0x04       GPL,SL  R/O      8  Device Statistics log
0x06           SL  R/O      1  SMART self-test log
0x07       GPL     R/O      1  Extended self-test log
0x10       GPL     R/O      1  NCQ Command Error log
0x11       GPL     R/O      1  SATA Phy Event Counters log
0x30       GPL,SL  R/O      9  IDENTIFY DEVICE data log
0x80-0x9f  GPL,SL  R/W     16  Host vendor specific log
0xde       GPL     VS       8  Device vendor specific log

SMART Extended Comprehensive Error Log Version: 1 (1 sectors)
Invalid Error Log index = 0x0000 (reserved = 0x00)
Device Error Count: 16 (possibly also invalid)

SMART Extended Self-test Log Version: 1 (1 sectors)
No self-tests have been logged.  [To run self-tests, use: smartctl -t]

Selective Self-tests/Logging not supported

SCT Commands not supported

Device Statistics (GP Log 0x04)
Page  Offset Size        Value Flags Description
0x01  =====  =               =  ===  == General Statistics (rev 1) ==
0x01  0x008  4             675  ---  Lifetime Power-On Resets
0x01  0x010  4             264  ---  Power-on Hours
0x01  0x018  6      2558302047  ---  Logical Sectors Written
0x01  0x020  6               0  ---  Number of Write Commands
0x01  0x028  6      3241906898  ---  Logical Sectors Read
0x01  0x030  6             173  ---  Number of Read Commands
0x07  =====  =               =  ===  == Solid State Device Statistics (rev 1) ==
0x07  0x008  1               1  ---  Percentage Used Endurance Indicator
                                |||_ C monitored condition met
                                ||__ D supports DSN
                                |___ N normalized value

Pending Defects log (GP Log 0x0c) not supported

SATA Phy Event Counters (GP Log 0x11)
ID      Size     Value  Description
0x0001  4            0  Command failed due to ICRC error
0x0002  4            0  R_ERR response for data FIS
0x0005  4            0  R_ERR response for non-data FIS
0x000a  4            1  Device-to-host register FISes sent due to a COMRESET
dimgel ★★★★★
() автор топика
Ответ на: комментарий от dimgel
241 Total_LBAs_Written      ----CK   100   100   050    -    39036
242 Total_LBAs_Read         ----CK   100   100   050    -    49467

Это явно не в секторах. Может, в гигабайтах?

Посмотри как меняются со временем и что будет если прочитать с него сразу 100гб с помощью dd.

firkax ★★★★★
()
Ответ на: комментарий от firkax

Я там ниже блок статистики прощёлкал, оно больше похоже на правду, за 5 лет-то:

0x01  0x018  6      2558302047  ---  Logical Sectors Written
0x01  0x020  6               0  ---  Number of Write Commands
0x01  0x028  6      3241906898  ---  Logical Sectors Read

Да, и растёт именно это последнее значение, когда делаю с него dd в /dev/null. Надо бы теперь по-хорошему в него загрузиться, чтобы проверить, что при записи растёт первый счётчик…

dimgel ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Не, реально пишет. «Logical Sectors Written» растёт как не в себя. PID-ы тоже растут, но не быстро: ~70 за 10 секунд.

dimgel ★★★★★
() автор топика
Последнее исправление: dimgel (всего исправлений: 1)
Ответ на: комментарий от anonymous

Это всё есть, вопрос совершенно в другом. Оно реально пишет непрерывно, на максимальной скорости. Ты представляешь, что такое непрерывная запись SSD на максимальной скорости? Это десятки мегабайт в секунду. При чём тут noatime вообще?

dimgel ★★★★★
() автор топика
Ответ на: комментарий от firkax

Попробуй например iotop -o -d 0.05 может поможет.

Увы. Раз в несколько секунд проскакивает jdb2 и всё.

К слову, я попутно смотрел du -s /* – там тоже ничего не менялось. Так что пишет хз кто хз куда. :/ Бред собачий.

Также find / -mmin -1 ничего не находит. Если бы это были короткоживущие процессы, они бы закрывали файлы (хотя в теории конечно могли бы хачить, восстанавливая исходный mtime).

dimgel ★★★★★
() автор топика
Последнее исправление: dimgel (всего исправлений: 1)
Ответ на: комментарий от anonymous

старое железо или неправильный режим в биосе для диска ( IDE вместо AHCI ) ?

Из-под основной системы монтируется и нормально работает, и до обновления системы на ssd тоже работало. А железо (в смысле комп) вполне себе новый.

dimgel ★★★★★
() автор топика
Последнее исправление: dimgel (всего исправлений: 1)
Ответ на: комментарий от pekmop1024

5 лет уже этой ФС, у неё было время выполнить lazy init. И опять же, из-под основной системы ничего не пишет.

dimgel ★★★★★
() автор топика
Последнее исправление: dimgel (всего исправлений: 1)
Ответ на: комментарий от anonymous

Что он тебе даст? Я уже писал выше, SMART показывает, что сектора записываются, и iotop в заголовке показывает трафик.

Задрало меня туда-сюда грузиться. Будут новые идеи – буду проверять.

dimgel ★★★★★
() автор топика
Последнее исправление: dimgel (всего исправлений: 1)
Ответ на: комментарий от dimgel

Будут новые идеи – буду проверять

На более другом компе, не? Для исключение уефий.
А еще лучьше еще и с другого носителя загрузчик запустить и чрутнуться как нибудь.

anonymous
()
Ответ на: комментарий от dimgel

iotop в заголовке показывает трафик.

А вы не в заголовке смотрите, а отсортируйте по DISK WRITE, у меня например syslog периодически дергает и мне понятно почему.

anc ★★★★★
()
Ответ на: комментарий от anonymous

работает руткит

Его ещё нужно найти, скачать, наложить патчи, скомпилировать, дать права на выполнение, запустить, исправить ошибки, пересобрать, и только потом, если повезет, он будет нормально работать...

QsUPt7S ★★
()
Ответ на: комментарий от dimgel

Что он тебе даст?

Разбивку записи по устройствам. Если у вас там ФС поверх dm-crypt, то будет видно, запись на него идёт, или только на низлежащий sdaX, то есть глюк на уровене драйвера. Возможно, будет видно кол-во DISCARD, будет понятно, это работа с файлами создал/удалил или просто запись по кругу. Хотя TRIM, ЕМНИП, по умолчанию на съёмных носителях отключен (provisioning_mode).

mky ★★★★★
()

Хватит искать. Накати чистую систему(желательно не артикс) и отключи дополнительные девайсы, на которых может быть /home. Проблема пропала? Ок, накатывай софт. Нет? Проблема аппаратная

serg002 ★★★
()
Последнее исправление: serg002 (всего исправлений: 1)

Глюк ssd, что-то с ФС, или действительно зловред. Если последнее и скрытый процесс, то это скорее всего как-то модифицированное ядро, чтобы не было видно. Попробуй поставить другую версию ядра или переустанови систему. Другое что-то искать вряд-ли поможет.

anonymous
()

Пока отложил на недельку-месяцок, не до того. Fatrace вряд ли чего покажет, т.к. поиск по mtime ранее ничего не дал. Какие-то непонятные васянские тулзы запускать не буду. Ядра бинарные совпадают до байта. Может посмотрю как @mky советовал – идёт ли запись только на /dev/sd* или на /dev/mapper/* тоже, для этого даже iostat не нужен: достаточно в gkrellm добавить соответствующий диск. Хотя непонятно, что мне это даст с практической точки зрения. Пытался гуглить на предмет, не перешифровывает ли dm-crypt всё после какого-нибудь обновления, но это вряд ли: (1) при втыкании в загруженный ноут не перешифровывает; (2) не вижу чтения, только запись; (3) не помню, чтобы основную систему перешифровывало; (4) ничего не нагуглилось. В общем, склоняюсь к тому, чтобы не ждать, пока оно покончит с флешкой и перекинется на непримонтированные диски ноута, а тупо скопировать систему с ноута – как собственно когда-то я эту флешку и создал.

dimgel ★★★★★
() автор топика

Это Artix linux, который «использует настоящие системы инициализации, поскольку PID1 должен быть простым, безопасным и стабильным»…

Может там какая то ерунда перезапускаться в бесконечном цикле, падать и пачкать логи?

Попробуй логи в tmpfs положить

Aster
()
Ответ на: комментарий от dimgel

Какие-то непонятные васянские тулзы запускать не буду.

Тупой элементарный bash script, который читает /proc и красиво парсит.

Кроме этого, я таки дорожу своей репутацией и ещё ни разу не был замечен в том, чтобы распространять говно.

И моё имя не «васян».

Удачи.

tempuser003
()
Последнее исправление: tempuser003 (всего исправлений: 1)
Ответ на: комментарий от tempuser003

Кроме этого, я таки дорожу своей репутацией

По нику заметно. :)

UPD: А чё, фирмы-однодневки – вполне себе ход для защиты репутации. :)

И моё имя не «васян».

И это по нику тоже заметно. :)

dimgel ★★★★★
() автор топика
Последнее исправление: dimgel (всего исправлений: 1)
Ответ на: комментарий от dimgel

Если бы вы были на ЛОР больше 10 лет, вы бы знали меня как обо ссаного.

Oh, sh it, вы тут больше 10 лет и не узнаёте меня.

Может быть имя/владелец github репы вам о чём-то говорит? Если нет, то бывает, видимо, я не настолько известен :-)

Странно это. В среде Линукс примерно каждый второй знает меня - не лично, это только к fartuna, но хотя бы слышал :-)

tempuser003
()