Я виконав наступну команду bash для об'єднання декількох великих файлів
cat file1.txt file2.txt file3.txt file4.txt > merged.txt
Процес триває дуже довго, оскільки файли складають близько 12 Гб кожен. На activity monitor
(Mac OSX 10.11.3), під назвою вкладки Disk
, Я бачу наступний запис для процесу, що представляє інтерес
Як це можливо в цьому cat
процес, що більше байтів пишуться, ніж читати?
Я не знаю, OSX, але, можливо, загальна кількість моніторів включає доступ до диска під час заміни. Якщо операційна система замінює програму на диск, але вона знову активізується, перш ніж що-небудь інше використовує свою оперативну пам'ять, копія пам'яті буде використана для її відновлення, не читаючи знову.
—
AFH
Не знаючи OSX, мої міркування полягають у тому, що "Письмові" дані включають в себе оновлені оновлені як файли для їх зайняття. Це не буде включено до даних "Читання", оскільки метадані всіх, крім першого, несуттєві для
—
Gypsy Spellweaver
cat
. Або він може отримати доступ до файлу чи ні, а часові мітки і т.д. ігноруються cat
на вхідних файлах. Проте вихідний файл, який створює оболонка, повинен мати мета-дані файлу, відтворені в кожному індексі, який використовується для нового файлу.
@GypsySpellweaver - Хороший момент. Можливо, у будь-якій файловій системі встановлено час доступу, тому строго, можливо, оновлено час читання, але лише кілька разів за файл! Але ви змусили мене подумати про щось інше: якщо цільова мета знаходиться у файловій системі журналу, то буде і запис журналу, і дані. Я здивований, що все це додасть 10% накладних витрат у цьому питанні. Можливо, це лише відмінності між двома розділами, зокрема розміром кластера та фрагментацією.
—
AFH
Я також не знаю OSX. Я прочитав, що HFS + не підтримує розріджені файли; але у випадку іншої файлової системи я б припускав, що принаймні один вхідний файл (частково) розріджений, вихідний файл не є. Коли я
—
Kamil Maciorowski
cat
повністю розріджений файл до іншого файлу в Linux (файлова система BTRFS) iotop
вказує, що процес читає дуже мало і багато пише. Розріджений текстовий файл незвичайний, тому це просто загальне мій коментар.
Це питання слід передати, щоб запитати про монітор діяльності. Я не бачу жодних даних про те, що було написано більше, ніж було прочитано. Підраховуйте байти в отриманому файлі і, ймовірно, це сума вхідних файлів.
—
sage