Як це можливо в цьому процесі "кішки", що записується більше байтів, ніж читання?


2

Я виконав наступну команду bash для об'єднання декількох великих файлів

cat file1.txt file2.txt file3.txt file4.txt > merged.txt

Процес триває дуже довго, оскільки файли складають близько 12 Гб кожен. На activity monitor (Mac OSX 10.11.3), під назвою вкладки Disk, Я бачу наступний запис для процесу, що представляє інтерес

enter image description here

Як це можливо в цьому cat процес, що більше байтів пишуться, ніж читати?


Я не знаю, OSX, але, можливо, загальна кількість моніторів включає доступ до диска під час заміни. Якщо операційна система замінює програму на диск, але вона знову активізується, перш ніж що-небудь інше використовує свою оперативну пам'ять, копія пам'яті буде використана для її відновлення, не читаючи знову.
AFH

Не знаючи OSX, мої міркування полягають у тому, що "Письмові" дані включають в себе оновлені оновлені як файли для їх зайняття. Це не буде включено до даних "Читання", оскільки метадані всіх, крім першого, несуттєві для cat. Або він може отримати доступ до файлу чи ні, а часові мітки і т.д. ігноруються cat на вхідних файлах. Проте вихідний файл, який створює оболонка, повинен мати мета-дані файлу, відтворені в кожному індексі, який використовується для нового файлу.
Gypsy Spellweaver

1
@GypsySpellweaver - Хороший момент. Можливо, у будь-якій файловій системі встановлено час доступу, тому строго, можливо, оновлено час читання, але лише кілька разів за файл! Але ви змусили мене подумати про щось інше: якщо цільова мета знаходиться у файловій системі журналу, то буде і запис журналу, і дані. Я здивований, що все це додасть 10% накладних витрат у цьому питанні. Можливо, це лише відмінності між двома розділами, зокрема розміром кластера та фрагментацією.
AFH

Я також не знаю OSX. Я прочитав, що HFS + не підтримує розріджені файли; але у випадку іншої файлової системи я б припускав, що принаймні один вхідний файл (частково) розріджений, вихідний файл не є. Коли я cat повністю розріджений файл до іншого файлу в Linux (файлова система BTRFS) iotop вказує, що процес читає дуже мало і багато пише. Розріджений текстовий файл незвичайний, тому це просто загальне мій коментар.
Kamil Maciorowski

Це питання слід передати, щоб запитати про монітор діяльності. Я не бачу жодних даних про те, що було написано більше, ніж було прочитано. Підраховуйте байти в отриманому файлі і, ймовірно, це сума вхідних файлів.
sage
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.