Главная страница


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)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: Большие файлы в reiserfs   Alexander Kulak   07 Sep 2001 09:42:04 
 Re: Большие файлы в reiserfs   Alexey Marinichev   08 Sep 2001 00:40:49 
Архивное /ru.linux/6370c10aff60.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional