|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Alexey Marinichev 2:5020/400 08 Sep 2001 00:40:49 To : Alexander Kulak Subject : Re: Большие файлы в reiserfs -------------------------------------------------------------------------------- In article <3603478627@f208.n450.z2.fidonet.ftn>, Alexander Kulak <Alexander.Kulak@f208.n450.z2.fidonet.org> wrote: >Hello, Alexey Marinichev. > >>>Это можно сделать, забив на линьюкс. >>>dd под солярисом отлично делает. >>>А любимая ОС в целом так и не научилась делать большие файлы на x86. >AM> А вот и научилась, именно под интелями, в рейзерфсе. > >Hет. Рейзерфс еще не научилась с большими файлами работать. >Тормоза превосходят все логические предположения. >То есть реально использовать ее на больших файлах невозможно. >А немногие другие умеющие fs вроде еще слишком сырые. Осмелюсь утверждать, что это не совсем так. Сегодня утром пробовал. Делал вот что: так как у глибц проблемы с размером типа, который за позицию в файле отвечает, я забил на глибц и просто с помощью лупбэка сделал блоковое устройство. После этого на это устройство я запустил mke2fs и туда покопировал с гигабайт разной ерунды. Изначальный файл был 3.5 гигабайта. Hикаких замедлений я не заметил, всё работало с разумной скоростью. Это вполне реальное использование. Hапример, если я хочу сбэкапить партицию, но так, чтобы к файлам было легко добраться. А новую чистую партицию создавать лень. >AM> умею делать длинные файлы без проблем. Вот: >AM> w$ dd if=/dev/zero of=file bs=1M count=1 seek=10000 > >Теперь заставь выполниться на линжуксе вот такую программу. >Разрешается делать все: патчить компилятор или libc, >патчить текст программы и т.д. > > program test1 > implicit real*8 (a-h,o-z) > > nx = 1024*1024*2560/16 ! 2.5 giga bytes > > open (unit=3,name='bigfile',status='unknown',form='formatted') > > a = 0.0 > do i=1,nx > write (3,'(1f15.6)') a > end do > > close (3) > > stop > end Я не очень понял, что эта программа должна делать, такого языка я не знаю. Фортран что-ли это, какой-то странный? Судя по 1f15.6 число 0 туда будет писаться с шириной в 15 знаков, и если эта операция повторяется 2.5 миллиарда раз, то получившийся файл будет 37.5 гигабайт. Столько места у меня нет, так что попробовать не могу. В то, что к 37 гигабайтам всё замедлится до невозможности, я могу поверить. Hо с файлами покороче всё работает вроде бы как надо. В любом случае, мой изначальный вопрос был про то как *в принципе* в рейзерфс делать длинные файлы. Hа dd я запустил strace, и увидел там только writы. 3.5 гигабайта writов по мегабайту каждый выполнились без глюков. И никаких резких замедлений по прошествии двух гигабайт я не увидел. >AM> Судя по тому, как неторопливо исполняется первый dd, он просто делает 10000 >AM> сиков по мегабайту каждый. > >Тормоза - скорей всего проблемы reiserfs. Я был неправ про 10000 сиков, делается один _llseek, и это и занимает большую часть времени. Тормозит при этим, конечно файловая система. --Лёша --- ifmail v.2.15dev5 * Origin: University of California, Riverside (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/6370c10aff60.html, оценка из 5, голосов 10
|