ื–ื™ื”ื•ื™ ืชื”ืœื™ื›ื™ื ืขื ืคืขื™ืœื•ืช ื“ื™ืกืง ื‘ืœื™ื ื•ืงืก

TL; DR: ื”ืžืืžืจ ืžื“ื‘ืจ ืขืœ ื“ืจืš ื ื•ื—ื”, ืžื”ื™ืจื” ื•ืืžื™ื ื” ืœื–ื”ื•ืช ืชื•ื›ื ื•ืช ืœื™ื ื•ืงืก ืฉื›ื•ืชื‘ื•ืช ื ืชื•ื ื™ื ืœื“ื™ืกืง, ืžื” ืฉืขื•ื–ืจ ื‘ื–ื™ื”ื•ื™ ืขื•ืžืก ื’ื“ื•ืœ ืื• ืชื›ื•ืฃ ื—ืจื™ื’ ืขืœ ืชืช-ืžืขืจื›ืช ื”ื“ื™ืกืง, ื•ื’ื ืžืืคืฉืจ ืœื”ืขืจื™ืš ืืช ื”ืชืงื•ืจื” ืฉืœ ืžืขืจื›ืช ื”ืงื‘ืฆื™ื. ื–ื” ื ื›ื•ืŸ ื‘ืžื™ื•ื—ื“ ืขื‘ื•ืจ SSDs ื‘ืžื—ืฉื‘ื™ PC, EMMC, ื•ื–ื™ื›ืจื•ืŸ Flash ื‘ืžื—ืฉื‘ื™ ืœื•ื— ื™ื—ื™ื“.
ื‘ื–ืžืŸ ื›ืชื™ื‘ืช ืžืืžืจ ื–ื”, ื’ื™ืœื™ืชื™ ืฉื›ืชื™ื‘ืช ืžืกืคืจ ืงื™ืœื•ื‘ื™ื™ื˜ ืฉืœ ื ืชื•ื ื™ื ืœืžืขืจื›ืช ื”ืงื‘ืฆื™ื BTRFS ืžื‘ื™ืื” ืœื›ืชื™ื‘ืช 3 ืžื’ื”-ื‘ื™ื™ื˜ ืฉืœ ื ืชื•ื ื™ื ืืžื™ืชื™ื™ื ืœื“ื™ืกืง.

ืžื‘ื•ื

"ืื•ื™, ืฉื˜ื•ื™ื•ืช, ืชืื™ ื”ื–ื™ื›ืจื•ืŸ ื‘ื›ื•ื ื ื™ SSD ืžื•ื“ืจื ื™ื™ื ื™ื™ื›ืฉืœื• ืœืื—ืจ ืขืฉืจื•ืช ืฉื ื™ื ืฉืœ ืฉื™ืžื•ืฉ ืจื’ื™ืœ, ืืœ ืชื“ืื’ ื‘ืงืฉืจ ืœื–ื”, ื”ืจื‘ื” ืคื—ื•ืช ื”ืขื‘ืจื” ืฉืœ ื”ื—ืœืคื”, ืžื›ื•ื ื•ืช ื•ื™ืจื˜ื•ืืœื™ื•ืช ื•ืชื™ืงื™ื™ืช ืคืจื•ืคื™ืœ ื”ื“ืคื“ืคืŸ ืœ-HDD" - ืชืฉื•ื‘ื” ื˜ื™ืคื•ืกื™ืช ืœืฉืืœื” ืœื’ื‘ื™ ื”ืืžื™ื ื•ืช ืฉืœ ื›ื•ื ื ื™ ืžืฆื‘ ืžื•ืฆืง ืขื ืžื•ื‘ื˜ื— โ‰ˆ150 TBW. ืื ืžืขืจื™ื›ื™ื ื›ืžื” ื ืชื•ื ื™ื ืชื•ื›ื ื” ื˜ื™ืคื•ืกื™ืช ื™ื›ื•ืœื” ืœื›ืชื•ื‘, ื ืจืื” ืฉ-10-20 GB ืœื™ื•ื ื–ื” ื›ื‘ืจ ื ืชื•ืŸ ื’ื“ื•ืœ, ืฉื™ื”ื™ื• ืžืงืกื™ืžื•ื 40 GB, ื”ืจื‘ื” ื™ื•ืชืจ. ื‘ื”ืชื—ืฉื‘ ื‘ืžืกืคืจื™ื ื”ืืœื”, ื”ืชืฉื•ื‘ื” ื”ื™ื ืกื‘ื™ืจื” ืœืžื“ื™ - ื–ื” ืœื•ืงื— 10 ืฉื ื™ื ืœื”ืฉื™ื’ ืžื•ึผื‘ื˜ึธื— ืขืจื›ื™ื ืขื‘ื•ืจ ืžืกืคืจ ื”ืชืื™ื ืฉื”ื•ื—ืœืคื•, ืขื 40 GB ืฉืœ ื ืชื•ื ื™ื ืžื•ืงืœื˜ื™ื ืžื“ื™ ื™ื•ื.
ืขื ื–ืืช, ื‘ืขื•ื“ 6 ืฉื ื™ื ืื ื™ ื›ื‘ืจ ืžืฉืชืžืฉ ื‘-SSD ื”ืฉืœื™ืฉื™ ืฉืœื™: ื”ื‘ืงืจ ืฉืœ ื”ืจืืฉื•ืŸ ื›ืฉืœ, ื•ื”ืฉื ื™ ื”ืชื—ื™ืœ ืœื”ืขื‘ื™ืจ ื ืชื•ื ื™ื ื‘ื™ืŸ ืชืื™ื ืžืกืคืจ ืคืขืžื™ื ื‘ื™ื•ื, ืžื” ืฉื’ืจื ืœืขื™ื›ื•ื‘ื™ื ืฉืœ 30 ืฉื ื™ื•ืช ื‘ืฉื™ืจื•ืช ื”ื”ืงืœื˜ื”.

ืœืื—ืจ 7 ื—ื•ื“ืฉื™ื ืฉืœ ืฉื™ืžื•ืฉ ื‘-SSD ื”ื—ื“ืฉ, ื”ื—ืœื˜ืชื™ ืœื‘ื“ื•ืง ืืช ื›ืžื•ืช ื”ื ืชื•ื ื™ื ืฉื ื›ืชื‘ื•, ื›ืคื™ ืฉื“ื™ื•ื•ื— ื”ื›ื•ื ืŸ ืขืฆืžื• ื‘ืืžืฆืขื•ืช SMART.
19.7 TB.
ืชื•ืš 7 ื—ื•ื“ืฉื™ื ื‘ืœื‘ื“ ื”ืฉืชืžืฉืชื™ ื‘-13% ืžื”ื›ืžื•ืช ื”ืžื•ื‘ื˜ื—ืช ืฉืœ ื”ื ืชื•ื ื™ื ื”ืžื•ืงืœื˜ื™ื, ืœืžืจื•ืช ื”ืขื•ื‘ื“ื” ืฉื”ื•ื ืžื•ื’ื“ืจ ื‘ื”ืชืื ืœื”ืžืœืฆื•ืช ืœื™ื™ืฉื•ืจ ืžื—ื™ืฆื•ืช ื•ื”ื’ื“ืจืช ื”-FS, ืื ื™ ื›ืžืขื˜ ืืฃ ืคืขื ืœื ืžืฉืชืžืฉ ื‘-swap, ื”ื“ื™ืกืงื™ื ืฉืœ ื”ืžื›ื•ื ื” ื”ื•ื™ืจื˜ื•ืืœื™ืช ืžืžื•ืงืžื™ื ืขืœ ื”ื“ื™ืกืง ื”ืงืฉื™ื—!
ื–ื”ื• ื ืชื•ืŸ ื’ื‘ื•ื” ื‘ืื•ืคืŸ ื—ืจื™ื’; ื‘ืงืฆื‘ ื–ื”, ืชื—ื•ืœ ื—ืจื™ื’ื” ืž-TBW ืฉืœ ื”ืื—ืจื™ื•ืช ืœืคื ื™ ื”ืฉื’ืช ืชืงื•ืคืช ื”ืื—ืจื™ื•ืช ืœื“ื™ืกืง ืฉืœ 5 ืฉื ื™ื. ื•ื”ืžื—ืฉื‘ ืฉืœื™ ืœื ื™ื›ื•ืœ ืœื›ืชื•ื‘ 93 ื’ื™ื’ื”-ื‘ื™ื™ื˜ ืœื™ื•ื! ืื ื—ื ื• ืฆืจื™ื›ื™ื ืœื‘ื“ื•ืง ื›ืžื” ื ืชื•ื ื™ื ื ื›ืชื‘ื™ื ืœื“ื™ืกืง ื‘-10 ื“ืงื•ืช...

Total:
Writes Queued: 24,712, 2,237MiB
Writes Completed: 25,507, 2,237MiB
Write Merges: 58, 5,472KiB

2.2 GiB, ื”ื•-ื”ื•-ื”ื•!

ืงื‘ื™ืขืช ื›ืžื•ืช ื”ื ืชื•ื ื™ื ืฉื ื›ืชื‘ื• ืœื”ืชืงืŸ ื“ื™ืกืง

ืื ื”ืžื›ืฉื™ืจ ืฉืœืš ืชื•ืžืš ื‘-SMART (SSD, EMMC, MicroSD ืชืขืฉื™ื™ืชื™ ื›ืœืฉื”ื•), ืื– ื”ื“ื‘ืจ ื”ืจืืฉื•ืŸ ืฉืขืœื™ืš ืœืขืฉื•ืช ื”ื•ื ืœื‘ืงืฉ ื ืชื•ื ื™ื ืžื”ื›ื•ื ืŸ ื‘ืืžืฆืขื•ืช ืชื•ื›ื ื™ื•ืช smartctl, skdump ืื• mmc (ืž-mmc-utils).

ืคืœื˜ ื“ื•ื’ืžื” ืžืชื•ื›ื ื™ืช smartctl

$ sudo smartctl -a /dev/sdb
smartctl 7.0 2019-03-31 r4903 [x86_64-linux-5.3.11-200.fc30.x86_64] (local build)
Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Samsung based SSDs
Device Model:     Samsung SSD 860 EVO mSATA 250GB
Serial Number:    S41MNC0KA13477K
LU WWN Device Id: 5 002538 e700fa64b
Firmware Version: RVT41B6Q
User Capacity:    250โ€ฏ059โ€ฏ350โ€ฏ016 bytes [250 GB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    Solid State Device
Form Factor:      mSATA
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ACS-4 T13/BSR INCITS 529 revision 5
SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 3.0 Gb/s)
Local Time is:    Tue Nov 19 01:48:50 2019 MSK
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== 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:                (    0) seconds.
Offline data collection
capabilities:                    (0x53) SMART execute Offline immediate.
                                        Auto Offline data collection on/off support.
                                        Suspend Offline collection upon new
                                        command.
                                        No Offline surface scan supported.
                                        Self-test supported.
                                        No Conveyance Self-test supported.
                                        Selective Self-test supported.
SMART capabilities:            (0x0003) Saves 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:        (  85) minutes.
SCT capabilities:              (0x003d) SCT Status supported.
                                        SCT Error Recovery Control supported.
                                        SCT Feature Control supported.
                                        SCT Data Table supported.

SMART Attributes Data Structure revision number: 1
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  5 Reallocated_Sector_Ct   0x0033   100   100   010    Pre-fail  Always       -       0
  9 Power_On_Hours          0x0032   098   098   000    Old_age   Always       -       5171
 12 Power_Cycle_Count       0x0032   099   099   000    Old_age   Always       -       459
177 Wear_Leveling_Count     0x0013   096   096   000    Pre-fail  Always       -       62
179 Used_Rsvd_Blk_Cnt_Tot   0x0013   100   100   010    Pre-fail  Always       -       0
181 Program_Fail_Cnt_Total  0x0032   100   100   010    Old_age   Always       -       0
182 Erase_Fail_Count_Total  0x0032   100   100   010    Old_age   Always       -       0
183 Runtime_Bad_Block       0x0013   100   100   010    Pre-fail  Always       -       0
187 Uncorrectable_Error_Cnt 0x0032   100   100   000    Old_age   Always       -       0
190 Airflow_Temperature_Cel 0x0032   058   039   000    Old_age   Always       -       42
195 ECC_Error_Rate          0x001a   200   200   000    Old_age   Always       -       0
199 CRC_Error_Count         0x003e   100   100   000    Old_age   Always       -       0
235 POR_Recovery_Count      0x0012   099   099   000    Old_age   Always       -       29
241 Total_LBAs_Written      0x0032   099   099   000    Old_age   Always       -       38615215765

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]

SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

ื”-SSD ืฉืœื™ ืžืื—ืกืŸ ืืช ื›ืžื•ืช ื”ื ืชื•ื ื™ื ืฉื ื›ืชื‘ื• ื‘ืคืจืžื˜ืจ 241 Total_LBAs_Written, ื‘ื‘ืœื•ืงื™ื ืœื•ื’ื™ื™ื (LBA) ื•ืœื ื‘ืชื™ื. ื’ื•ื“ืœ ื”ื‘ืœื•ืง ื”ืœื•ื’ื™ ื‘ืžืงืจื” ืฉืœื™ ื”ื•ื 512 ื‘ืชื™ื (ื ื™ืชืŸ ืœืจืื•ืช ืื•ืชื• ื‘ืคืœื˜ smartctl, ื‘-Sector Size). ื›ื“ื™ ืœืงื‘ืœ ื‘ืชื™ื, ืขืœื™ืš ืœื”ื›ืคื™ืœ ืืช ืขืจืš ื”ืคืจืžื˜ืจ ื‘-512.

38615215765 ร— 512 รท 1000 รท 1000 รท 1000 รท 1000 = 19,770 ะขะ‘
38615215765 ร— 512 รท 1024 รท 1024 รท 1024 รท 1024 = 17,981 ะขะธะ‘

ืชื›ื ื™ืช skdump ื‘-SSD ืฉืœื™ ื”ื•ื ืžื ืกื” ืœืคืจืฉ ืืช ื”ืขืจืš Total_LBAs_Written ืื™ื›ืฉื”ื• ื‘ื“ืจื›ื• ืฉืœื•, ื•ื–ื• ื”ืกื™ื‘ื” ืฉื”ื•ื ืžืฆื™ื’ 1296217.695 TB, ื•ื–ื” ื›ืžื•ื‘ืŸ ืœื ื ื›ื•ืŸ.

ื›ื“ื™ ืœื‘ืจืจ ืืช ื›ืžื•ืช ื”ืžื™ื“ืข ืฉื ืจืฉืžื” ื‘ืจืžืช ื”ืžื›ืฉื™ืจ, ื ืฉืชืžืฉ ื‘ืชื•ื›ื ื™ืช btrace ืžื”ื—ื‘ื™ืœื” blktrace. ื”ื•ื ืžืฆื™ื’ ื”ืŸ ืกื˜ื˜ื™ืกื˜ื™ืงื•ืช ื›ืœืœื™ื•ืช ืขื‘ื•ืจ ื›ืœ ื”ื–ืžืŸ ืฉื”ืชื•ื›ื ื™ืช ืคืขืœื”, ื•ื”ืŸ ืชื”ืœื™ื›ื™ื ื•ื—ื•ื˜ื™ื ื‘ื•ื“ื“ื™ื (ื›ื•ืœืœ ื’ืจืขื™ื ื™ื) ืฉื‘ื™ืฆืขื• ืืช ื”ื”ืงืœื˜ื”.

ื”ืคืขืœ ืืช ื”ืคืงื•ื“ื” ื”ื‘ืื” ื›ื“ื™ ืœืืกื•ืฃ ืžื™ื“ืข ืชื•ืš 10 ื“ืงื•ืช, ื›ืืฉืจ /dev/sdb ื”ื•ื ื”ื“ื™ืกืง ืฉืœืš:

# btrace -w 600 -a write /dev/sdb

ืคืœื˜ ืคืงื•ื“ื” ืื•ืคื™ื™ื ื™

โ€ฆ
  8,16   0     3253    50.085433192     0  C  WS 125424240 + 64 [0]
  8,16   0     3254    50.085550024     0  C  WS 193577744 + 64 [0]
  8,16   0     3255    50.085685165     0  C  WS 197246976 + 64 [0]
  8,16   0     3256    50.085936852     0  C  WS 125736264 + 128 [0]
  8,16   0     3257    50.086060780     0  C  WS 96261752 + 64 [0]
  8,16   0     3258    50.086195031     0  C  WS 94948640 + 64 [0]
  8,16   0     3259    50.086327355     0  C  WS 124656144 + 64 [0]
  8,16   0     3260    50.086843733 15368  C WSM 310218496 + 32 [0]
  8,16   0     3261    50.086975238   753  A WSM 310218368 + 32 <- (8,20) 291339904
  8,16   0     3262    50.086975560   753  Q WSM 310218368 + 32 [dmcrypt_write/2]
  8,16   0     3263    50.086977345   753  G WSM 310218368 + 32 [dmcrypt_write/2]
  8,16   0     3264    50.086978072   753  I WSM 310218368 + 32 [dmcrypt_write/2]
  8,16   0     3265    50.086979159   753  D WSM 310218368 + 32 [dmcrypt_write/2]
  8,16   0     3266    50.087055685     0  C WSM 310218368 + 32 [0]
  8,16   0     3267    50.087060168   753  A WSM 310218592 + 160 <- (8,20) 291340128
  8,16   0     3268    50.087060367   753  Q WSM 310218592 + 160 [dmcrypt_write/2]
  8,16   0     3269    50.087061242   753  G WSM 310218592 + 160 [dmcrypt_write/2]
  8,16   0     3270    50.087061698   753  I WSM 310218592 + 160 [dmcrypt_write/2]
  8,16   0     3271    50.087062361   753  D WSM 310218592 + 160 [dmcrypt_write/2]
  8,16   0     3272    50.087386179     0  C WSM 310218592 + 160 [0]
  8,16   0     3273    50.087436417 15368  A FWS 0 + 0 <- (253,1) 0
  8,16   0     3274    50.087437471 15368  Q FWS [LS Thread]
  8,16   0     3275    50.087440862 15368  G FWS [LS Thread]
  8,16   0     3276    50.088300047     0  C  WS 0 [0]
  8,16   0     3277    50.088470917   753  A WFSM 18882688 + 8 <- (8,20) 4224
  8,16   0     3278    50.088471091   753  Q WFSM 18882688 + 8 [dmcrypt_write/2]
  8,16   0     3279    50.088471688   753  G WFSM 18882688 + 8 [dmcrypt_write/2]
  8,16   0     3280    50.088474334 32254  D WSM 18882688 + 8 [kworker/0:2H]
  8,16   0     3281    50.088515572     0  C WSM 18882688 + 8 [0]
  8,16   0     3282    50.089229069     0  C WSM 18882688 [0]
CPU0 (8,16):
 Reads Queued:           0,        0KiB  Writes Queued:         345,   25,932KiB
 Read Dispatches:        0,        0KiB  Write Dispatches:      331,   25,788KiB
 Reads Requeued:         0               Writes Requeued:         0
 Reads Completed:        0,        0KiB  Writes Completed:    1,597,  117,112KiB
 Read Merges:            0,        0KiB  Write Merges:            1,       16KiB
 Read depth:             0               Write depth:           177
 IO unplugs:             0               Timer unplugs:           0
CPU1 (8,16):
 Reads Queued:           0,        0KiB  Writes Queued:         502,   39,948KiB
 Read Dispatches:        0,        0KiB  Write Dispatches:      495,   40,076KiB
 Reads Requeued:         0               Writes Requeued:         0
 Reads Completed:        0,        0KiB  Writes Completed:        0,        0KiB
 Read Merges:            0,        0KiB  Write Merges:            0,        0KiB
 Read depth:             0               Write depth:           177
 IO unplugs:             0               Timer unplugs:           0
CPU2 (8,16):
 Reads Queued:           0,        0KiB  Writes Queued:         297,   26,800KiB
 Read Dispatches:        0,        0KiB  Write Dispatches:      287,   26,800KiB
 Reads Requeued:         0               Writes Requeued:         0
 Reads Completed:        0,        0KiB  Writes Completed:        0,        0KiB
 Read Merges:            0,        0KiB  Write Merges:            0,        0KiB
 Read depth:             0               Write depth:           177
 IO unplugs:             0               Timer unplugs:           0
CPU3 (8,16):
 Reads Queued:           0,        0KiB  Writes Queued:         418,   24,432KiB
 Read Dispatches:        0,        0KiB  Write Dispatches:      408,   24,448KiB
 Reads Requeued:         0               Writes Requeued:         0
 Reads Completed:        0,        0KiB  Writes Completed:        0,        0KiB
 Read Merges:            0,        0KiB  Write Merges:            2,      272KiB
 Read depth:             0               Write depth:           177
 IO unplugs:             0               Timer unplugs:           0

Total (8,16):
 Reads Queued:           0,        0KiB  Writes Queued:       1,562,  117,112KiB
 Read Dispatches:        0,        0KiB  Write Dispatches:    1,521,  117,112KiB
 Reads Requeued:         0               Writes Requeued:         0
 Reads Completed:        0,        0KiB  Writes Completed:    1,597,  117,112KiB
 Read Merges:            0,        0KiB  Write Merges:            3,      288KiB
 IO unplugs:             0               Timer unplugs:           0

Throughput (R/W): 0KiB/s / 2,338KiB/s
Events (8,16): 9,287 entries
Skips: 0 forward (0 -   0.0%)

btrace ืžืืคืฉืจ ืœืš ืœืจืื•ืช ื‘ื‘ื™ืจื•ืจ ืืช ื›ืžื•ืช ื”ื ืชื•ื ื™ื ื”ืžื•ืงืœื˜ื™ื ื‘ืคื•ืขืœ, ืืš ืงืฉื” ืœื”ื‘ื™ืŸ ืื™ืœื• ืชื•ื›ื ื™ื•ืช ืžืงืœื™ื˜ื•ืช ืžื”ืคืœื˜ ืฉืœื”.

ืงื‘ื™ืขืช ืชื•ื›ื ื™ื•ืช ืฉื›ื•ืชื‘ื•ืช ืœื›ื•ื ืŸ

ืชื›ื ื™ืช iotop ื™ืฆื™ื’ ืืช ืชื”ืœื™ื›ื™ ื”ื›ืชื™ื‘ื” ืœื“ื™ืกืง ื•ืืช ื’ื•ื“ืœ ื”ื ืชื•ื ื™ื ืฉื ื›ืชื‘ื•.
ื”ืคืœื˜ ื”ื ื•ื—ื” ื‘ื™ื•ืชืจ ืžืกื•ืคืง ืขืœ ื™ื“ื™ ื”ืคืจืžื˜ืจื™ื ื”ื‘ืื™ื:

# iotop -obPat

ืคืœื˜ ืชื•ื›ื ื™ืช ืœื“ื•ื’ืžื”

02:55:47 Total DISK READ :       0.00 B/s | Total DISK WRITE :      30.65 K/s
02:55:47 Actual DISK READ:       0.00 B/s | Actual DISK WRITE:       0.00 B/s
    TIME  PID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN      IO    COMMAND
b'02:55:47   753 be/4 root          0.00 B      0.00 B  0.00 %  0.04 % [dmcrypt_write/2]'
b'02:55:47   788 be/4 root         72.00 K     18.27 M  0.00 %  0.02 % [btrfs-transacti]'
b'02:55:47 15057 be/4 valdikss    216.00 K    283.05 M  0.00 %  0.01 % firefox'
b'02:55:47  1588 ?dif root          0.00 B      0.00 B  0.00 %  0.00 % Xorg -nolisten tcp -auth /var/run/sddm/{398f030f-9667-4dff-b371-81eaae48dfdf} -background none -noreset -displayfd 18 -seat seat0 vt1'
b'02:55:47 15692 be/4 valdikss    988.00 K      9.41 M  0.00 %  0.00 % python3 /usr/bin/gajim'
b'02:55:47 15730 ?dif valdikss      9.07 M      0.00 B  0.00 %  0.00 % telegram-desktop --'
b'02:55:47  2174 ?dif valdikss   1840.00 K      2.47 M  0.00 %  0.00 % yakuake'
b'02:55:47 19827 be/4 root         16.00 K    896.00 K  0.00 %  0.00 % [kworker/u16:7-events_unbound]'
b'02:55:47 19074 be/4 root         16.00 K    480.00 K  0.00 %  0.00 % [kworker/u16:4-btrfs-endio-write]'
b'02:55:47 19006 be/4 root         16.00 K   1872.00 K  0.00 %  0.00 % [kworker/u16:1-events_unbound]'
b'02:55:47  1429 be/4 root        484.00 K      0.00 B  0.00 %  0.00 % accounts-daemon'
b'02:55:47 15820 be/4 valdikss    312.00 K      0.00 B  0.00 %  0.00 % firefox -contentproc -childID 6 -isForBrowser -prefsLen 7894 -prefMapSize 223880 -parentBuildID 20191022164834 -greomni /usr/lib64/firefox/omni.ja -appomni /usr/lib64/firefox/browser/omni.ja -appdir /usr/lib64/firefox/browser 15057 tab'
b'02:55:47  2125 ?dif valdikss      0.00 B     92.00 K  0.00 %  0.00 % plasmashell'
b'02:55:47  1268 be/3 root          0.00 B      4.00 K  0.00 %  0.00 % auditd'
b'02:55:47  1414 be/4 root          0.00 B      4.00 K  0.00 %  0.00 % sssd_nss --uid 0 --gid 0 --logger=files'
b'02:55:47 15238 be/4 valdikss      0.00 B      4.00 K  0.00 %  0.00 % thunderbird'
b'02:55:47 18605 be/4 root          0.00 B      3.19 M  0.00 %  0.00 % [kworker/u16:0-btrfs-endio-write]'
b'02:55:47 18867 be/4 root          0.00 B     96.00 K  0.00 %  0.00 % [kworker/u16:5-btrfs-endio-meta]'
b'02:55:47 19070 be/4 root          0.00 B    160.00 K  0.00 %  0.00 % [kworker/u16:2-btrfs-freespace-write]'
b'02:55:47 19645 be/4 root          0.00 B      2.17 M  0.00 %  0.00 % [kworker/u16:3-events_unbound]'
b'02:55:47 19982 be/4 root          0.00 B    496.00 K  0.00 %  0.00 % [kworker/u16:6-btrfs-endio-write]'

ืคื™ื™ืจืคื•ืงืก ืžื•ืฉืš ืืช ื”ืขื™ืŸ ืฉืœืš, ืžืงืœื™ื˜ 283 ืžื’ื” ื‘ื™ื™ื˜ ื‘ื›ืžื” ื“ืงื•ืช ืฉืœ ืจื™ืฆืช iotop.

ืงื‘ื™ืขืช ื”ืงื‘ืฆื™ื ืฉืืœื™ื”ื ื™ืฉ ืœื›ืชื•ื‘

ื”ืžื™ื“ืข ืขืœ ื”ืชื”ืœื™ืš ืฉื“ื•ืจืก ืืช ื”ื“ื™ืกืง ื”ื•ื ื˜ื•ื‘, ืื‘ืœ ื”ื ืชื™ื‘ื™ื ืฉืœืื•ืจื›ื ืžืชื‘ืฆืขืช ื”ื”ืงืœื˜ื” ื˜ื•ื‘ื™ื ืืคื™ืœื• ื™ื•ืชืจ.

ื‘ื•ืื• ื ืฉืชืžืฉ ื‘ืชื•ื›ื ื™ืช fatrace, ืืฉืจ ืขื•ืงื‘ ืื—ืจ ืฉื™ื ื•ื™ื™ื ื‘ืžืขืจื›ืช ื”ืงื‘ืฆื™ื.

# fatrace -f W

ืคืœื˜ ืชื•ื›ื ื™ืช ืœื“ื•ื’ืžื”

firefox(15057): CW /home/valdikss/.mozilla/firefox/xyf4vqh2.default/storage/default/moz-extension+++e5c304fb-af40-498a-9ba8-47eb0416e933^userContextId=4294967295/idb/3647222921wleabcEoxlt-eengsairo.sqlite-wal
firefox(15057): CW /home/valdikss/.mozilla/firefox/xyf4vqh2.default/storage/default/moz-extension+++e5c304fb-af40-498a-9ba8-47eb0416e933^userContextId=4294967295/idb/3647222921wleabcEoxlt-eengsairo.sqlite
firefox(15057): W /home/valdikss/.mozilla/firefox/xyf4vqh2.default/storage/default/https+++habr.com/ls/data.sqlite-journal
firefox(15057): W /home/valdikss/.mozilla/firefox/xyf4vqh2.default/storage/default/https+++habr.com/ls/data.sqlite-journal
firefox(15057): W /home/valdikss/.mozilla/firefox/xyf4vqh2.default/storage/default/https+++habr.com/ls/data.sqlite-journal
firefox(15057): W /home/valdikss/.mozilla/firefox/xyf4vqh2.default/storage/default/https+++habr.com/ls/data.sqlite-journal
firefox(15057): W /home/valdikss/.mozilla/firefox/xyf4vqh2.default/storage/default/https+++habr.com/ls/data.sqlite-journal
firefox(15057): W /home/valdikss/.mozilla/firefox/xyf4vqh2.default/storage/default/https+++habr.com/ls/data.sqlite-journal
firefox(15057): W /home/valdikss/.mozilla/firefox/xyf4vqh2.default/storage/default/https+++habr.com/ls/data.sqlite-journal
firefox(15057): CW /home/valdikss/.mozilla/firefox/xyf4vqh2.default/storage/default/https+++habr.com/ls/usage-journal
firefox(15057): W /home/valdikss/.mozilla/firefox/xyf4vqh2.default/storage/default/https+++habr.com/ls/usage
firefox(15057): CW /home/valdikss/.mozilla/firefox/xyf4vqh2.default/storage/default/https+++habr.com/ls/usage
firefox(15057): W /home/valdikss/.mozilla/firefox/xyf4vqh2.default/storage/default/https+++habr.com/ls/data.sqlite-journal
firefox(15057): W /home/valdikss/.mozilla/firefox/xyf4vqh2.default/storage/default/https+++habr.com/ls/data.sqlite
firefox(15057): W /home/valdikss/.mozilla/firefox/xyf4vqh2.default/storage/default/https+++habr.com/ls/data.sqlite
firefox(15057): W /home/valdikss/.mozilla/firefox/xyf4vqh2.default/storage/default/https+++habr.com/ls/data.sqlite
firefox(15057): W /home/valdikss/.mozilla/firefox/xyf4vqh2.default/webappsstore.sqlite-wal
firefox(15057): W /home/valdikss/.mozilla/firefox/xyf4vqh2.default/webappsstore.sqlite-wal
firefox(15057): W /home/valdikss/.mozilla/firefox/xyf4vqh2.default/webappsstore.sqlite-wal
firefox(15057): W /home/valdikss/.mozilla/firefox/xyf4vqh2.default/webappsstore.sqlite-wal
firefox(15057): W /home/valdikss/.mozilla/firefox/xyf4vqh2.default/webappsstore.sqlite-wal
firefox(15057): W /home/valdikss/.mozilla/firefox/xyf4vqh2.default/webappsstore.sqlite-wal
firefox(15057): W /home/valdikss/.mozilla/firefox/xyf4vqh2.default/webappsstore.sqlite-wal
firefox(15057): CW /home/valdikss/.mozilla/firefox/xyf4vqh2.default/storage/default/https+++habr.com/ls/data.sqlite-journal
firefox(15057): W /home/valdikss/.mozilla/firefox/xyf4vqh2.default/webappsstore.sqlite
firefox(15057): W /home/valdikss/.mozilla/firefox/xyf4vqh2.default/webappsstore.sqlite
firefox(15057): W /home/valdikss/.mozilla/firefox/xyf4vqh2.default/webappsstore.sqlite

Fatrace ืœื ื™ื›ื•ืœื” ืœื”ืจืื•ืช ืืช ื›ืžื•ืช ื”ื ืชื•ื ื™ื ืฉื ืจืฉืžื” ืขืงื‘ ืฉื™ืžื•ืฉ ื‘ืžืขืงื‘ ืคืฉื•ื˜ ืœืžื“ื™ ืฉืœ ื”ืขื•ื‘ื“ื” ืฉื”ื’ื™ืฉื” ืœืงื‘ืฆื™ื ืžืชื‘ืฆืขืช ื‘ืืžืฆืขื•ืช inotify.

ืžื”ืคืœื˜ ื ื™ืชืŸ ืœืจืื•ืช ื›ื™ืฆื“ Habr ืฉื•ืžืจ ืืช ื”ืžืืžืจ ืฉืœื™ ื‘ืื—ืกื•ืŸ ื”ืžืงื•ืžื™ ืฉืœ ื”ื“ืคื“ืคืŸ ื‘ื–ืžืŸ ืฉืื ื™ ื›ื•ืชื‘ ืื•ืชื•, ื›ืžื• ื’ื ืืช ืชื•ืกืฃ ื”-Group Speed โ€‹โ€‹โ€‹โ€‹Dial, ืฉื›ืคื™ ืฉื”ืฆืœื—ื ื• ืœื’ืœื•ืช ื‘ืืžืฆืขื•ืช fatrace, ืงื•ืจื ืืช ื”ื ืชื•ื ื™ื ืฉืœื• ื›ืœ 30 ืฉื ื™ื•ืช. ื–ื” ืงื•ืจื, ืœื ื›ื•ืชื‘: CW ืœืคื ื™ ื”ืงื•ื‘ืฅ ืื•ืžืจ ืฉื”ืงื•ื‘ืฅ ื ืคืชื— ืœืงืจื™ืื” ื•ื›ืชื™ื‘ื”, ืขื ื™ืฆื™ืจื” ื‘ื•-ื–ืžื ื™ืช ืฉืœ ื”ืงื•ื‘ืฅ ืื ื”ื•ื ื—ืกืจ (ื ืงืจื openat ืขื ื“ื’ืœ O_RDWR|O_CREAT), ืื‘ืœ ืœื ืื•ืžืจ ืฉื‘ืืžืช ื ื›ืชื‘ ืžื™ื“ืข ื›ืœืฉื”ื• ืœืงื•ื‘ืฅ.

ืœื™ืชืจ ื‘ื™ื˜ื—ื•ืŸ, ื›ื“ื™ ืœื•ื•ื“ื ื–ืืช, ื”ื‘ื” ื ืฉืชืžืฉ ื‘-strace, ืขื ืžืกื ืŸ ืœืงืจื™ืื•ืช ืžืขืจื›ืช ืงื‘ืฆื™ื:

strace -yy -e trace=open,openat,close,write -f -p 15057 2>&1 | grep extension

ืคืœื˜ ืคืงื•ื“ื”

[pid 20352] openat(AT_FDCWD, "/home/valdikss/.mozilla/firefox/xyf4vqh2.default/storage/default/moz-extension+++e5c304fb-af40-498a-9ba8-47eb0416e933^userContextId=4294967295/idb/3647222921wleabcEoxlt-eengsairo.sqlite", O_RDWR|O_CREAT|O_CLOEXEC, 0644) = 153</home/valdikss/.mozilla/firefox/xyf4vqh2.default/storage/default/moz-extension+++e5c304fb-af40-498a-9ba8-47eb0416e933^userContextId=4294967295/idb/3647222921wleabcEoxlt-eengsairo.sqlite>
[pid 20352] read(153</home/valdikss/.mozilla/firefox/xyf4vqh2.default/storage/default/moz-extension+++e5c304fb-af40-498a-9ba8-47eb0416e933^userContextId=4294967295/idb/3647222921wleabcEoxlt-eengsairo.sqlite>, "SQLite format 3 20 22 @   d 23"..., 100) = 100
[pid 20352] read(153</home/valdikss/.mozilla/firefox/xyf4vqh2.default/storage/default/moz-extension+++e5c304fb-af40-498a-9ba8-47eb0416e933^userContextId=4294967295/idb/3647222921wleabcEoxlt-eengsairo.sqlite>, "SQLite format 3 20 22 @   d 23"..., 4096) = 4096
[pid 20352] openat(AT_FDCWD, "/home/valdikss/.mozilla/firefox/xyf4vqh2.default/storage/default/moz-extension+++e5c304fb-af40-498a-9ba8-47eb0416e933^userContextId=4294967295/idb/3647222921wleabcEoxlt-eengsairo.sqlite-wal", O_RDWR|O_CREAT|O_CLOEXEC, 0644) = 166</home/valdikss/.mozilla/firefox/xyf4vqh2.default/storage/default/moz-extension+++e5c304fb-af40-498a-9ba8-47eb0416e933^userContextId=4294967295/idb/3647222921wleabcEoxlt-eengsairo.sqlite-wal>
โ€ฆ
[pid 20352] read(54</home/valdikss/.mozilla/firefox/xyf4vqh2.default/storage/default/moz-extension+++e5c304fb-af40-498a-9ba8-47eb0416e933^userContextId=4294967295/idb/3647222921wleabcEoxlt-eengsairo.sqlite>, " r4304364354354364-  4204!4'414" 250 &"..., 4096) = 4096
[pid 20352] read(54</home/valdikss/.mozilla/firefox/xyf4vqh2.default/storage/default/moz-extension+++e5c304fb-af40-498a-9ba8-47eb0416e933^userContextId=4294967295/idb/3647222921wleabcEoxlt-eengsairo.sqlite>, " 136Pt2262504 O24532016:"16.27 r245306>2461t1q370"..., 4096) = 4096
[pid 20352] close(77</home/valdikss/.mozilla/firefox/xyf4vqh2.default/storage/default/moz-extension+++e5c304fb-af40-498a-9ba8-47eb0416e933^userContextId=4294967295/idb/3647222921wleabcEoxlt-eengsairo.sqlite-wal>) = 0
[pid 20352] close(54</home/valdikss/.mozilla/firefox/xyf4vqh2.default/storage/default/moz-extension+++e5c304fb-af40-498a-9ba8-47eb0416e933^userContextId=4294967295/idb/3647222921wleabcEoxlt-eengsairo.sqlite>) = 0

ืื™ืŸ ืฉื™ื—ื” write(), ืžื” ืฉืžืฆื™ื™ืŸ ืฉืื™ืŸ ื›ื ื™ืกื” ืœืงื•ื‘ืฅ.

ืงื‘ื™ืขืช ืชืงื•ืจื” ืฉืœ ืžืขืจื›ืช ืงื‘ืฆื™ื

ื”ื‘ื“ืœ ื’ื“ื•ืœ ื‘ืงืจื™ืื•ืช iotop ะธ btrace ื ืชืŸ ืœื™ ืืช ื”ืจืขื™ื•ืŸ ืœื‘ื“ื•ืง ืืช ืžืขืจื›ืช ื”ืงื‘ืฆื™ื ืขืœ ื™ื“ื™ ื›ืชื™ื‘ืช ื ืชื•ื ื™ื ื™ื“ื ื™ืช ืœืงื•ื‘ืฅ ื•ื ื™ื˜ื•ืจ ืงืจื™ืื•ืช btrace.

ืื ืืชื” ืœื ื›ื•ืœืœ ืœื—ืœื•ื˜ื™ืŸ ื›ืชื™ื‘ื” ืœื“ื™ืกืง ืขืœ ื™ื“ื™ ืืชื—ื•ืœ ืœืžืฆื‘ ื—ื™ืจื•ื ืžืขืจื›ืชื™ ื•ื›ืชื•ื‘ ื‘ืื•ืคืŸ ื™ื“ื ื™ ื›ืžื” ื‘ืชื™ื ื ืชื•ื ื™ื ืœืงื•ื‘ืฅ ืงื™ื™ื, btrace ืœ-SSD ืž btrfs ื”ืงืœื˜ืช ื“ื•ื—ื•ืช 3 ืžื’ื” ื‘ื™ื™ื˜ ื ืชื•ื ื™ื ืืžื™ืชื™ื™ื. ืžืขืจื›ืช ืงื‘ืฆื™ื ื—ื“ืฉื” ืฉื ื•ืฆืจื” ื‘ื›ื•ื ืŸ ื”ื‘ื–ืง ืฉืœ 8 ื’'ื™ื’ื”-ื‘ื™ื™ื˜ ื›ื•ืชื‘ืช ืžื™ื ื™ืžื•ื ืฉืœ 264 KiB ื‘ืขืช ื›ืชื™ื‘ืช ื‘ื™ื™ื˜ ืื—ื“.
ืœืฉื ื”ืฉื•ื•ืื”, ื›ืชื™ื‘ืช ื›ืžื” ื‘ืชื™ื ืœืงื•ื‘ืฅ ื‘-ext4 ืžืกืชื™ื™ืžืช ื‘ื›ืชื™ื‘ืช 24 ืงื™ืœื•ื‘ื™ื™ื˜ ืฉืœ ื ืชื•ื ื™ื ืœื“ื™ืกืง.

ื‘ืฉื ืช 2017, Jayashree Mohan, Rohan Kadekodi ื•- Vijay Chidambaram ืขืจื›ื• ืžื—ืงืจ ืฉืœ ื”ื’ื‘ืจืช ื›ืชื™ื‘ื” ืฉืœ ืžืขืจื›ื•ืช ืงื‘ืฆื™ื ืฉื•ื ื•ืช, ื”ืชื•ืฆืื•ืช ืฉืœื”ื ืขื‘ื•ืจ btrfs ื•-ext4 ื‘ื›ืชื™ื‘ืช 4KB ืชื•ืืžื•ืช ืœืฉืœื™.

ื–ื™ื”ื•ื™ ืชื”ืœื™ื›ื™ื ืขื ืคืขื™ืœื•ืช ื“ื™ืกืง ื‘ืœื™ื ื•ืงืก

ืžืกืงื ื” ื•ืžืกืงื ื”

ื“ืจืš ื”ืžื ื™ืคื•ืœืฆื™ื•ืช ื”ืžืชื•ืืจื•ืช ื”ืชื’ืœื”:

  1. ืจื™ืฉื•ื ืชื›ื•ืฃ ืฉืœ ืžืฆื‘ื™ ืขื‘ื•ื“ืช ื”ืžื“ืคืกืช ืขืœ ื™ื“ื™ ื“ืžื•ืŸ ื”ื”ื“ืคืกื” ืฉืœ CUPS ืœ-/var/ืžื˜ืžื•ืŸ/ื›ื•ืกื•ืช ื›ืœ ื“ืงื”. ื”ื‘ืขื™ื” ืชื•ืงื ื” ืขืœ ื™ื“ื™ ื ื™ืงื•ื™ /var/ืกึฐืœึดื™ืœ/cups (ืœืžืจื•ืช ืฉืœื ื”ื™ื• ืขื‘ื•ื“ื•ืช ื”ื“ืคืกื”);
  2. ื”ืขื•ื‘ื“ื” ืฉืžืกื“ ื”ื ืชื•ื ื™ื ื ืงืจื ื›ืœ 30 ืฉื ื™ื•ืช ืขืœ ื™ื“ื™ ืชื•ืกืฃ ื”ื—ื™ื•ื’ ื”ืžื”ื™ืจ ื”ืงื‘ื•ืฆืชื™ ืขื‘ื•ืจ Firefox;
  3. ืจื™ืฉื•ื ืชืงื•ืคืชื™ ืขืœ ื™ื“ื™ ืฉื™ืจื•ืชื™ ืžืขืงื‘ ืื—ืจ ื‘ื™ืฆื•ืขื™ื ืฉื•ื ื™ื ื‘ืคื“ื•ืจื”, ื•ื›ืชื•ืฆืื” ืžื›ืš ื ื›ืชื‘ื™ื ืžืกืคืจ ืžื’ื”-ื‘ื™ื™ื˜ ืฉืœ ื ืชื•ื ื™ื ืœ-btrfs: pmcd.service, pmie.service, pmlogger.service;
  4. ื”ื’ื‘ืจื” ืขืฆื•ืžื” ื‘ืขืช ื›ืชื™ื‘ืช ื›ืžื•ืช ืงื˜ื ื” ืฉืœ ื ืชื•ื ื™ื ื‘ืืžืฆืขื•ืช btrfs.

ืžืกืงื ื”: ืืกื•ืจ ืœื”ืฉืชืžืฉ ื‘-btrfs ืื ืชื•ื›ื ื™ื•ืช ื›ื•ืชื‘ื•ืช ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื›ืžื•ืช ืงื˜ื ื” ืฉืœ ื ืชื•ื ื™ื (ื›ืžื” ืงื™ืœื•ื‘ื™ื™ื˜), ืื—ืจืช ื–ื” ื™ื‘ื™ื ืœืžื’ื”-ื‘ื™ื™ื˜ ืฉืœ ื ืชื•ื ื™ื ื›ืชื•ื‘ื™ื. ื–ื” ื ื›ื•ืŸ ื‘ืžื™ื•ื—ื“ ืขื‘ื•ืจ ืžื—ืฉื‘ื™ื ืขื ืœื•ื— ื™ื—ื™ื“ ืขื ืžืขืจื›ืช ื”ืคืขืœื” ืขืœ MicroSD.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”