Автор Тема: файлови системи за бази данни  (Прочетена 6416 пъти)

dilyan

  • Напреднали
  • *****
  • Публикации: 186
  • Distribution: Debian, OpenBSD
  • Window Manager: Gnome, xfce
    • Профил
Привет,
разрових се по въпроса за оптимална файлова система за Postgresql база и попаднах на интересни линкове.
На този адрес правят сравнителни тестове на ext2, ext3, reiserfs, jfs, xfs.
цък
на страници 27, 28 има графички, на които се вижда че ext2 е най-лека, интересното е, че от журналните на Oracle най-добра е xfs, а като цяло jfs "кърти мивки" в тоя бенчмарк. Все пак това е някакъв n-процесорен сървер + SAN и кой знае как е пипнат.

Другото интересно на което попаднах е на цък където най-интересното е:
4.3 Try FreeBSD
Large updates, deletes, and vacuum in PostgreSQL are very disk intensive processes. In particular, since vacuum gobbles up IO bandwidth, the rest of the database activities could be affected adversely when vacuuming very large tables.

OS's from the BSD family, such as FreeBSD, dynamically alter the IO priority of a process. So if you lower the priority of a vacuum process, it should not chew as much bandwidth and will better allow the database to perform normally. Of course this means that vacuum could take longer, which would be problematic for a "vacuum full."

If you are not done with your choice of OS for your server platform, consider BSD for this reason.

Интересно ми е кой какви опити е правил и до какви изводи е стигнал за връзката файлова система - база данни. Аз търкалям един PostgreSQL 8.0 на openSUSE 10.0 с reiserfs. Базата е все още малка < 1 ГБ, с малко юзери който колкото и да я разпъват засега няма бавене, но очаквам да расте бързичко.


поздрави, Дилян



Активен

tolostoi

  • Напреднали
  • *****
  • Публикации: 1337
  • Distribution: Ubuntu
  • Window Manager: Unity
  • левел: авераж :)
    • Профил
файлови системи за бази данни
« Отговор #1 -: Mar 28, 2007, 11:29 »
Новак съм, и нямам опит, но ако ти е от полза ето едно мнение малко по-настрана http://www.hardwarebg.com/forum/showpost.php?p=1125902&postcount=6
Активен


... в Столичен инспекторат една година след миграцията, продължават да работят под Linux. Което, май прави "експеримента" успешен
by entusiast

triplek

  • Напреднали
  • *****
  • Публикации: 564
    • Профил
файлови системи за бази данни
« Отговор #2 -: Mar 31, 2007, 12:44 »
Не съм съгласен че ReiserFS е най-бавната fs. Аз мн отдавна си я ползвам и нямам абсолютно никакви проблеми. За протокола само ше отбележа че и Ext2,3 съм ползвал. Мисля че райзъра е по-добра(да не кажа най-добрата). Колкото до това XFS мисля че наличието на толкова мн минуси е достатъчно показателно колко е хубава.
Активен

Debian Lenny/sid

karaman

  • Напреднали
  • *****
  • Публикации: 351
    • Профил
    • WWW
файлови системи за бази данни
« Отговор #3 -: Mar 31, 2007, 13:52 »
аз съм с XFS, не съм забелязал минуси '<img'>

smelkomar

  • Напреднали
  • *****
  • Публикации: 429
    • Профил
файлови системи за бази данни
« Отговор #4 -: Mar 31, 2007, 14:14 »
Ако говорим за сторидж решение, това което ползвам вкъщи от 2 години е HPFS на един 160GB диск. ОС-а, който ползвам за нея е BSD. Доволен съм, всички филми, музики и картинки са ми на нея и засега нямам проблеми със скорост на четене и запис. Не можех да кажа същото за журналните fs-та - ext3 и reiser (fs и 4). Просто са по-бавни за мен и по принцип трябва по-честичко да ги fsck-вам '<img'>

Иначе ето ви тест:
http://linuxgazette.net/102/piszcz.html

Ето ви почти пълен списък на fs:
http://en.wikipedia.org/wiki/Comparison_of_file_systems

А някой има ли идея това с каква файлова система работи '<img'>
http://www.gigabyte.com.tw/Product....RAMDISK



Активен

Ползвам т'ва, к'вот ме кефи

romeo_ninov

  • Напреднали
  • *****
  • Публикации: 2155
    • Профил
файлови системи за бази данни
« Отговор #5 -: Mar 31, 2007, 17:35 »
Цитат (triplek @ Март 31 2007,13:44)
Не съм съгласен че ReiserFS е най-бавната fs. Аз мн отдавна си я ползвам и нямам абсолютно никакви проблеми. За протокола само ше отбележа че и Ext2,3 съм ползвал. Мисля че райзъра е по-добра(да не кажа най-добрата). Колкото до това XFS мисля че наличието на толкова мн минуси е достатъчно показателно колко е хубава.

Това, че не си имал проблеми конкретно ти не оначава нищо.
Активен

0x2B|~0x2B

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
файлови системи за бази данни
« Отговор #6 -: Apr 01, 2007, 19:58 »
Това е много забавна тема '<img'>

Нямам категорично мнение по въпроса. Но мога да споделя малко размисли и страсти по темата '<img'>

Първо, зависи от RDBMS-a. Едно е mysql (myisam или innodb), друго е postgresql, трето е oracle.

Myisam използва  2-3 файла на таблица, като когато таблицата е голяма, тези 2-3 файла съответно са големи. При innodb, данните на всички таблици се пазят в 1-2 файла ibdata, при postgresql, данните са организирани в малки и много на брой файлове, при oracle...там има ASM, raw devices, всъщност точно там нещата са най-"различни" '<img'>

Доколко зависят нещата от файловата система? Мисля, че тук се намесват и по-забавни фактори от сорта на memory management. postgresql naprimer ползва shared memory, като много неща зависят от това доколко си му позволил да ползва (има /proc tunnables, покрай самата конфигурация на базата). Не знам дали вече не го знаете, но postgresql, колкото и прекрасен RDBMS да е, не се scale-ва добре. Нямате ли достатъчно RАМ да се вдигне там базата, производителността е отвратителна, в сравнение с mysql или oracle. От друга страна ядрото си прави vfs/pagecache кеширане. Цялостната картинка предполагам много зависи от системата и типа workload.

Човек би казал че при Oracle нещата стоят най-странно, но напротив, точно там нещата най-малко зависят. Даваш му някакъв raw device да си го достъпва с O_DIRECT, или пък някакво блоково устройство, което му се добавя към ASM-a и оракъла знае най-добре как да се оправи, като ядрото му пречи максимално малко. Той си се оправя с memory management-a, нямаш двойно кеширане и подобни глупости.

За xfs не мога да говоря, защото никога не съм си имал вземане-даване с тази файлова система. Що се отнася до reiserfs/ext, нещата са прости. По принцип, reiserfs си има дървовидно индексиране на файловете в една директория, което много ускорява нещата, особено в случая с postgresql. ext3 има подобна функционалност при 2.6 ядрата, но само ако човек се ъъ  "постарае" малко. reiserfs е малко нестабилна работа, подобно на психиката на човека, който я е писал (в момента  е подсъдим, заради убийството на жена си).

В конкретния случай, в който ползвате postgresql, базата е голяма и с много таблици, имате ext3 файлова система и нямате организация с двоични дървета на dentries, предполагам нещата могат да загрубеят. Онези големи глави от kernel.org неотдавна разкриха защо FTP сървърът им се бавел бая - пуснаха oprofile на сървърите и установиха, че syscalls от сорта на getdents() може да им влачат за интервали от порядъка на секунди, което е МНОГО.

Според мен обаче reiserfs е отмираща идея, след като голяма част от "гениалните" хрумвания бяха възприети в ext3. Няма да крия, че бях привърженик на тази файлова система доста дълго време...сега мнението ми се е променило доста '<img'>

Това всичкото е само по отношение на производителност...за стабилност (където трябва да се разглеждат разни журнални възможности), има още доста да се говори.

И накрая, в този paper не се говори нищо за клъстерни файлови системи, нещо, което е доста важно в последно време с нарастването на заявките, поне според мен. Там нещата придобиват малко различни измерения. opensource решенията се свеждат до OCFS или GFS,  а двете конкретни имплементации са някак си...философски различни. Точно за тази тематика може да се изпишат още не знам колко поста, според мен OCFS предлага по-добра производителност на цената на имането на малко повече сиво вещество в главата. Там много добре трябва да се прецени балансът между fault tolerance и грозните ненужни fencing *събития*.

Между другото, ако разговорът се изроди в дискусия за клъстърни файлови системи, бих бил доста доволен, съжалявам за което '<img'> Ще ми е интересно да чуя мнението на някой, разбиращ повече от клъстерни файлови системи. Аз съм все още лаик в тази област.
Активен

"Knowledge is power" - France is Bacon

zeridon

  • Killmode enabled
  • Administrator
  • Напреднали
  • *****
  • Публикации: 1398
  • Distribution: Debian/Ubuntu
  • Window Manager: console/Gnome
  • BOfH
    • Профил
    • WWW
файлови системи за бази данни
« Отговор #7 -: Apr 02, 2007, 12:05 »
Цитат (smelkomar @ Март 31 2007,14:14)
А някой има ли идея това с каква файлова система работи '<img'>
http://www.gigabyte.com.tw/Product....RAMDISK

Поне от manual-а на сайта се разбира че тва животно ще се вижда като нормален SATA диск ... бодваш го и си го форматираш както искаш. Но при положение че имаш CF2IDE и други подобни глезотии не виждам много смисъл от него ...
Активен

Внмимавай имам клещи за кабел
http://www.netsecad.com/
http://theregister.co.uk/odds/bofh/

smelkomar

  • Напреднали
  • *****
  • Публикации: 429
    • Профил
файлови системи за бази данни
« Отговор #8 -: Apr 02, 2007, 12:35 »
Ами маааалко по-бързо ще зарежда, отколкото твръд диск '<img'>
Мерси все пак, не бях обърнал внимание, че го засича като САТА. Мислех, че е PАТА или SCSI '<img'>
Активен

Ползвам т'ва, к'вот ме кефи

mhydra

  • Напреднали
  • *****
  • Публикации: 715
  • Distribution: Fedora, Mandriva
  • Window Manager: GNOME
    • Профил
файлови системи за бази данни
« Отговор #9 -: Apr 10, 2007, 13:59 »
Е че аз подобно нещо мога да си направя и сега на линукса. мисля че имаше възможност да заделиш рам и да я направиш да се вижда като отделно устройство в /дев/ххх където вече можеш да си я правиш каквото си искаш..
Е в случая може да се форматира и да се разположи там малка част от базата данни... примерно най използваните таблици...
Ще подобри изключително много производителността ... едно е харда друго е паметта. има-няма 100 пъти разлика '<img'>
Активен

Указвам помощ за всичко свързано с Fedora и Мандрива.
Може да ме търсите на ICQ.

smelkomar

  • Напреднали
  • *****
  • Публикации: 429
    • Профил
файлови системи за бази данни
« Отговор #10 -: Apr 10, 2007, 14:42 »
Цитат (mhydra @ Април 11 2007,13:59)
Е че аз подобно нещо мога да си направя и сега на линукса. мисля че имаше възможност да заделиш рам и да я направиш да се вижда като отделно устройство в /дев/ххх където вече можеш да си я правиш каквото си искаш..
Е в случая може да се форматира и да се разположи там малка част от базата данни... примерно най използваните таблици...
Ще подобри изключително много производителността ... едно е харда друго е паметта. има-няма 100 пъти разлика '<img'>


Така е, но тук се говори за батерия към паметите за перманентно запомняне на информацията '<img'>



Активен

Ползвам т'ва, к'вот ме кефи

mhydra

  • Напреднали
  • *****
  • Публикации: 715
  • Distribution: Fedora, Mandriva
  • Window Manager: GNOME
    • Профил
файлови системи за бази данни
« Отговор #11 -: Apr 10, 2007, 15:24 »
Аз това го видях но по голяма батерия от един УПС нема.. '<img'>
А и аз имам предвид някакво кръстосано решение с рам и хард диск. Тоест през 5,10, 20 минути да се прави синхронизиране на базата  данни разположена на рама с хард диска.
Така при евентуален срив на захранване или ОС всичко ще си е на харда в рамките на 5 мин. примерно.
Това е по скоро решение от гледна точка на ефективност и малко пари. Ако имате пари много естествено ще се купи посоченото по горе устройство.
Активен

Указвам помощ за всичко свързано с Fedora и Мандрива.
Може да ме търсите на ICQ.

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
файлови системи за бази данни
« Отговор #12 -: Apr 17, 2007, 20:06 »
Това дефакто се случва в повечето бази данни. Лошото е, че докато се осъществява копирането на това от "РАМ-та" върху диска се налага да се lock-ват таблици, за да не се прецака консистентността. Което води до performance проблеми. И това кога или колко често да се случва "flush-ването" е доста забавен и сложен проблем всъщност '<img'>
Активен

"Knowledge is power" - France is Bacon