The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Тестирование файловых систем на Flash-накопителях в Linux

27.10.2010 15:50

Ресурс LinuxPlanet провел небольшой эксперимент с целью выяснить, какая файловая система более эффективна на Flash-накопителях и SD-картах.

Измерение скорости (указано время в секундах) записи\чтения исходников ядра на современную SD-карту (Class 10):


            Ext2     Ext3     Ext4     Reiser3    VFat     NTFS
  Запись    368      501      125      582        518      174
  Чтение    53       60       53       72         98       118

Пример с самой дешевой "noname" Flash-картой:

            Ext2     Ext3     Ext4     Reiser3    VFat     NTFS
  Запись    434      361      156      750        564      165
  Чтение    50       64       48       87         51       125

Как видно, наилучшую производительность показала файловая система Ext4.

Результаты опыта по копированию одного большого файла:


              Ext2     Ext3     Ext4    Reiser3    VFat     NTFS
  Запись      14.45    11.21    8.67    18.31      8.36     16.08
  Чтение      4.72     4.55     4.66    4.74       4.44     4.48

Наибольшую скорость чтения показала файловая система VFAT, на втором месте - NTFS (на третьем Ext3), по скорости записи - лидер VFAT, на втором месте - Ext4.

  1. Главная ссылка к новости (http://www.linuxplanet.com/lin...)
Автор новости: A.Stahl
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/28434-flash
Ключевые слова: flash, benchmark, ext4, ext3, disk
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (72) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 16:32, 27/10/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • –9 +/
    Обзор ниочем, почему такой скудный набор ФС?
     
     
  • 2.22, Зенитар (?), 19:57, 27/10/2010 [^] [^^] [^^^] [ответить]  
  • –4 +/
    > Обзор ниочем, почему такой скудный набор ФС?

    Ни а тёммм - фразочка для пригламуренных девиц, насаждаемая быдлоканалом ТНТ. Лучше ен говорить её

     
     
  • 3.28, Аноним (-), 21:00, 27/10/2010 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Ни а тёммм - фразочка для пригламуренных девиц, насаждаемая быдлоканалом ТНТ. Лучше ен говорить её

    Это стереотип, насаждаемый всеми подряд, лучше не повторять его.

     

  • 1.2, haku (??), 16:59, 27/10/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    btrfs нет — тест ни о чём.
     
  • 1.3, segoon (ok), 17:06, 27/10/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    А как же UbiFS и LogFS? Они специально для флешек сделаны.
     
     
  • 2.23, аноним (?), 20:01, 27/10/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    http://www.linux-mtd.infradead.org/doc/ubifs.html
    > UBIFS was designed to work on top of raw flash
     
  • 2.32, User294 (ok), 22:40, 27/10/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    UbiFS сделан для работы поверх флешек без контроллера. В SD карте есть свой контроллер, который и записи размазывает, и плохие сектора обрабатывает. Так что особого смысла в UbiFS там нет.
     
  • 2.56, анонимиус (?), 13:23, 28/10/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >А как же UbiFS и LogFS? Они специально для флешек сделаны.

    logfs, похоже, мертво. очень жаль.

     

  • 1.4, none_first (ok), 17:06, 27/10/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а НТФС, я так понимаю, под линухом? через FUSE?
    тоды- очстранный тест
     
     
  • 2.7, Зенитар (?), 17:13, 27/10/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Нет конечно. Судя по результатам.
     
     
  • 3.8, z (??), 17:19, 27/10/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >To duplicate these tests, download the linux 2.6.34 beezyball and run "time rsync -rv from -> to && sync && umount flash". Best to live on the edge and run as root.

    Отторжение естественно, но против фактов не попрёшь :)

     
     
  • 4.42, ананим (?), 00:00, 28/10/2010 [^] [^^] [^^^] [ответить]  
  • +/
    фактов?
    видимо это тест на зрение. посмотрите ещё раз на последнюю таблицу:
    >                   Ext2     Ext3     Ext4    Reiser3    VFat     NTFS
    >  Запись      14.45    11.21    8.67    18.31      8.36     16.08
    >  Чтение       4.72     4.55     4.66     4.74       4.44     4.48

    угу, чтение в рамках погрешности. а запись? и кто тут слабое звено?
    зы:
    вообще-то ядро и с нтфс компилится. и на запись, и на чтение. и она намного быстрее.
    а вот эта фраза - http://www.linuxplanet.com/linuxplanet/tutorials/7208/2/
    >Test Methodology
    >Well over 200 tests were run using eight computers running 12 operating systems.

    вообще ставит в тупик.
    короче, фрониксы не так уж и плохи.

     
     
  • 5.51, z (??), 10:37, 28/10/2010 [^] [^^] [^^^] [ответить]  
  • +/
    > короче, фрониксы не так уж и плохи.

    ну дык, всегда можно потратить и свое время на тесты, чтобы представить истину последней инстанции


     
     
  • 6.57, ананим (?), 13:30, 28/10/2010 [^] [^^] [^^^] [ответить]  
  • +/
    вы цифры то посмотрели?
    а истина в последней инстанции - в последнем предложении.
    так что без разницы что я протестирую и как. вам это не поможет. а для себя лично я всегда делаю выводы сам.
     
  • 4.72, аноним (?), 13:29, 30/10/2010 [^] [^^] [^^^] [ответить]  
  • +/
    > time rsync -rv from -> to && sync && umount flash

    Измерить время записи в кэш, потом подождать синхронизации и размонтировать? Идиоты.

     

  • 1.6, Зенитар (?), 17:11, 27/10/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    В статье нет информации о том как проводилось тестирование. А значит, результаты могут быть крайне неточными, синтетическими и тепличными. Известно, что много маленьких файлов записывается намного медленнее одного большого файла. Это например.
    А что же очередной FAT уже без числа после названия, но с ex перед? Так уж ли много в нём различий от FAT32/FAT16/FAT12? "Победили" ли в нём главный недостаток FAT - потерю места пропорционально размеру раздела? Как там у него со скоростью и насколько уделывает его ext2 и во сколько ext4 без журналирования?
     
     
  • 2.9, z (??), 17:20, 27/10/2010 [^] [^^] [^^^] [ответить]  
  • +/
    > В статье нет информации о том как проводилось тестирование.

    до Test Methodology не дочитали?

     
     
  • 3.20, Зенитар (?), 19:55, 27/10/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Да но там информации не больше чем в переводе
     
  • 2.10, z (??), 17:24, 27/10/2010 [^] [^^] [^^^] [ответить]  
  • +/
    > "Победили" ли в нём главный недостаток FAT - потерю места пропорционально размеру раздела?

    будто бы ext* этого недостатка лишены, c фиксированным числом инодов то


     
  • 2.12, anton7811 (ok), 17:26, 27/10/2010 [^] [^^] [^^^] [ответить]  
  • +/
    > ... Известно, что много маленьких
    > файлов записывается намного медленнее одного большого файла. Это например.

    Написано же: 1) записи\чтения исходников ядра  - єто куча маленьких фалов; 2) Результаты опыта по копированию одного большого - єто большой файл.

    > А что же очередной FAT уже без числа после названия, но с
    > ex перед?

    Давно уж на флешках VFAT стоит, много лет. Сколько ж статей было по поводу патентных притензий с его стороны то.


     
     
  • 3.21, Зенитар (?), 19:56, 27/10/2010 [^] [^^] [^^^] [ответить]  
  • +/

    > Давно уж на флешках VFAT стоит, много лет. Сколько ж статей было
    > по поводу патентных притензий с его стороны то.

    Ну, то есть, даже если различий мало, Майкрософт позаботилась, чтобы было страшновато добавлять поддержку в ядра разных ОС. А потом договорилась с Tuxera, чтобы никому не хотелось делатьв велдосипед?

     
  • 2.33, User294 (ok), 22:42, 27/10/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > "Победили" ли в нём главный недостаток FAT - потерю места пропорционально
    > размеру раздела?

    У него совсем другие главные недостатки. Место при современных объемах мало кого волнует. А вот лимит на размер файла и дичайшие тормоза когда в дире несколько тысяч файлов - вот это волнует, да.

     
  • 2.46, gluck (??), 07:48, 28/10/2010 [^] [^^] [^^^] [ответить]  
  • +/
    > А что же очередной FAT уже без числа после названия, но с ex перед?

    да не важно. Фраза в последнем тесте про большой файл вобще убила. Файл был достаточно большой?

     

  • 1.11, zazik (ok), 17:25, 27/10/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Странно, что не тестировали UFS, раз уж взялись тестировать незаточенные под флэшки ФС.
     
     
  • 2.13, Rex Lockheart (?), 17:36, 27/10/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Действительно, странно.
    Надо было до кучи и ZFS потестировать... ;)
     
     
  • 3.14, zazik (ok), 17:38, 27/10/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Действительно, странно.
    > Надо было до кучи и ZFS потестировать... ;)

    Btrfs ещё не упоминалась?

     
     
  • 4.31, Rex Lockheart (?), 22:37, 27/10/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Ещё как упоминалась:

    "btrfs нет — тест ни о чём"

    (Сообщение № 2 - от haku) :)))

     

  • 1.15, Аноним (-), 17:43, 27/10/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +8 +/
    Погодите, а с каких пор журналируемые файловые системы рассматриваются на накопителях с ограниченным количеством циклов перезаписи? Или статью Михалков заказал? :)
     
  • 1.16, Викрам (?), 17:51, 27/10/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    а почему все читают быстрее, чем пишут?
     
     
  • 2.17, zazik (ok), 17:59, 27/10/2010 [^] [^^] [^^^] [ответить]  
  • +/
    > а почему все читают быстрее, чем пишут?

    Запись всегда медленнее, нет?

     
     
  • 3.55, Викрам (?), 11:50, 28/10/2010 [^] [^^] [^^^] [ответить]  
  • +/
    имел в виду наоборот, на заметил, что указано время, а не скорость (что странно)
     
  • 2.24, Аноним (-), 20:35, 27/10/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще-то результаты в секундах указаны, а не в мегабайтах.
     
  • 2.27, z (??), 20:56, 27/10/2010 [^] [^^] [^^^] [ответить]  
  • –2 +/
    на флеше обычно секторы по 128к, т.е. чтобы записать скажем 64к нужно сначала прочитать целиком 128к, слить данные и затем записать 128к
     
     
  • 3.34, User294 (ok), 22:47, 27/10/2010 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > на флеше обычно секторы по 128к, т.е. чтобы записать скажем 64к нужно
    > сначала прочитать целиком 128к, слить данные и затем записать 128к

    Минимальным элементом записи является как правило страница (как правило 1, 2 или 4Кб). А вот стирание - да, только крупными erase block-ами. Надо ли производить стирание всего блока - сильно зависит от.

     
     
  • 4.50, z (??), 10:33, 28/10/2010 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Минимальным элементом записи является как правило страница (как правило 1, 2 или 4Кб).

    1,2,4к это не страницы, а размеры логических блоков для ext*, с физическими секторами флеш-памяти никак не связанные

    >А вот стирание - да, только крупными erase block-ами. Надо ли производить стирание всего блока - сильно зависит от.

    Чушь какая-то, в NAND чтение-запись-стирание всегда производится посекторно, вне зависимости от [хз чего]

     
     
  • 5.62, User294 (ok), 15:56, 28/10/2010 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Читайте маны про то как флеш работает Для начала хотя-бы что-то типа http en ... большой текст свёрнут, показать
     
     
  • 6.66, Gular (ok), 17:32, 28/10/2010 [^] [^^] [^^^] [ответить]  
  • +/
    omg, я не могу. Твои посты почти как мои. Нет, это не плохо, наоборот.
     
  • 6.68, z (??), 18:31, 28/10/2010 [^] [^^] [^^^] [ответить]  
  • +/
    ппц как люди от безделья страдают
     
     
  • 7.69, z (??), 18:39, 28/10/2010 [^] [^^] [^^^] [ответить]  
  • +/
    в смысле - накладные расходы на перезапись содержимого смежных блоков высоки, вся остальная детализация по сути вопроса избыточна
     
  • 6.71, zazik (ok), 15:53, 29/10/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Маленькое замечание - не "кластера", а "кластеры". Спасибо.
     

  • 1.18, dimqua (ok), 19:13, 27/10/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Жаль UDF нет :/
     
  • 1.19, Андрей (??), 19:49, 27/10/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    А UDF ?
     
  • 1.25, Аноним (-), 20:51, 27/10/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Я думал опять pornonix тестировали, а нет ведь. Для флешек разработан рад специальных фс с учётом ограничений и особенностей технологии.
     
     
  • 2.36, User294 (ok), 22:50, 27/10/2010 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Только вот флешки типа SD карт снабжены своим собственным контроллером, который скрывает истинную геометрию флеша и сам делает размазывание записей и прочая. Поэтому специальные ФС как-то не слишком нужны, да и не смогут наиболее эффективно наложить свои структуры на геометрию флеша. EXT4 кстати показал себя довольно эффективным на такой карточке.
     

  • 1.26, Аноним (-), 20:52, 27/10/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > по скорости записи - лидер Ext4.

    забавно. из таблицы видно, что лидер записи - VFat
    Запись
    Ext4 8.67
    VFat 8.36

     
  • 1.29, QuAzI (ok), 21:37, 27/10/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вдоволь нахавался проблем и с VFAT и с NTFS на флешке. А скорость у NTFS что на чтение, что на запись такая топорная, что вешаться можно сразу. Авторы теста тестиров судя по выводам не проводили вообще.
     
     
  • 2.30, QuAzI (ok), 21:38, 27/10/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    авторы теста тестировАНИЕ не проводили... блин... не проснулся ещё
     
     
  • 3.37, User294 (ok), 22:51, 27/10/2010 [^] [^^] [^^^] [ответить]  
  • –2 +/
    А также не освоили линку "исправить" под своим коментом :P. Нафига бы два комента с интервалом в минуту постить, если можно свой комент просто исправить?
     
     
  • 4.38, QuAzI (ok), 23:18, 27/10/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Я тоже удивился, но кнопку "исправить" так и не нашёл. Вот скрин, http://imagepost.ru/images/260/2010_10_27_222458_1280x1024_scrot.png
    Где там кнопка исправить? Буду весьма благодарен.
     
     
  • 5.39, Зилибоба логиница леница (?), 23:38, 27/10/2010 [^] [^^] [^^^] [ответить]  
  • +/
    > Я тоже удивился, но кнопку "исправить" так и не нашёл. Вот скрин,
    > http://imagepost.ru/images/260/2010_10_27_222458_1280x1024_scrot.png
    > Где там кнопка исправить? Буду весьма благодарен.

    Хм, проверил - кнопка есть...

     
     
  • 6.41, QuAzI (ok), 00:00, 28/10/2010 [^] [^^] [^^^] [ответить]  
  • +/
    На моём скрине или у вас? Если на моём, то где?
     
     
  • 7.58, XoRe (ok), 13:58, 28/10/2010 [^] [^^] [^^^] [ответить]  
  • +/
    > На моём скрине или у вас? Если на моём, то где?

    Есть страница новости, а есть тема на форуме (посвященная этой новости).
    На странице новости показаны часть ответов и везде ссылки "смотреть все".
    На странице темы форума есть кнопка "правка".
    Сначала жмакаем на "смотреть все", потом на "правка".

     
  • 5.47, zazik (ok), 09:25, 28/10/2010 [^] [^^] [^^^] [ответить]  
  • +/
    > Я тоже удивился, но кнопку "исправить" так и не нашёл. Вот скрин,
    > http://imagepost.ru/images/260/2010_10_27_222458_1280x1024_scrot.png
    > Где там кнопка исправить? Буду весьма благодарен.

    Сранность в том, что для её появления надо нажать на "смотреть всё", тогда под постом появляется линк.

     
     
  • 6.48, zazik (ok), 09:27, 28/10/2010 [^] [^^] [^^^] [ответить]  
  • +/
    *странность


     
     
  • 7.64, User294 (ok), 16:11, 28/10/2010 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Нет, первый вариант написания был точнее. Постоянно мотаться между 2-я режимами т.к. в одном не видно все коменты, а в другом не видно всю новость - это именно оно самое, в общем то ;(.
     
     
  • 8.65, zazik (ok), 16:20, 28/10/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Я думаю, это прекрасный повод продемонстрировать гибкость Открытого и Свободного... текст свёрнут, показать
     
  • 8.67, Maxim Chirkov (ok), 17:41, 28/10/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Перед обсуждением на странице с новостью жмите Показать все , режим запомнится ... текст свёрнут, показать
     
  • 5.63, User294 (ok), 16:08, 28/10/2010 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Где там кнопка исправить? Буду весьма благодарен.

    Нажмите "смотреть все". Удивитесь ;). Да, у опеннета зачем-то есть два разных режима, похожих на первый взгляд но не совпадающих. Грубо говоря, "режим в котором видно всю новость" (там видно всю новость но комменты скрыты и часть фич отсутствует) и "режим в котором видно все коменты" (наоборот, часть новости может быть скрыто а все коменты показаны и больше фич для работы с ними). Нахрена оно именно вот так - я не знаю :). Ни один из этих режимов не является самодостаточным - часть фич доступна только в одном, часть - только в другом. В общем такие вот чудеса :)

     

  • 1.35, вася (??), 22:49, 27/10/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >на современную SD-карту (Class 10):
    >NTFS 174
    >Пример с самой дешевой "noname" Flash-картой:
    >NTFS 165

    либо дешевые флешки очень любят NTFS, либо это уже вторая опечатка в результатах (первая - противоречие чисел и текста для Ext4/vFAT).

     
     
  • 2.40, Аноним (-), 23:44, 27/10/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Действительно.
     

  • 1.43, Erley (ok), 00:04, 28/10/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Тесты бессмыслены потому что все протестированные ФС не приспособлены для работы на NAND flash. Многое зависит от логической организации чипов - размер сектора, страницы и блока в NAND массиве. Чтение например всегда производится посекторно или (если управляющий контроллер более-менее толковый) постранично. А вот стираются данные чаще целым блоком.
    Теперь прикиньте - чтобы поменять всего один бит (ну ладно, пусть даже байт), нужно прочитать весь блок в оперативную память, поменять нужный байт, стереть блок в NAND и записать изменённый блок на его место.
    Ну конечно ФС имеет кэш в оперативке и может накапливать изменения, но вот что она вообще знает об устройстве данного NAND чипа? Его логическая организация различается даже в одной и той же партии флэшек...
    Тут уже говорили про flash wearing и про автоматическое распыление записей по всему адресному пространству флэша. Эту фишку (которая называется FTL) делают многие производители. Только вот алгоритмически это нетривиальная задача и большинство контроллеров флэшек делают это по принципу "как-нибудь", главное будет что в рекламном проспекте написать. В итоге как правило при использовании FTL сильно плавает скорость записи когда флэш записан хотя бы один-два раза под завязку.
    Какие тут ещё тесты?
     
     
  • 2.44, iCat (ok), 01:15, 28/10/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >Тесты бессмыслены потому что...
    >...
    >Какие тут ещё тесты?

    Вот золотые-то слова! А то развелось тестов-недорослей по принципу "покупайте нашу хренотень!"

     
     
  • 3.52, z (??), 10:40, 28/10/2010 [^] [^^] [^^^] [ответить]  
  • +/
    > Вот золотые-то слова! А то развелось тестов-недорослей по принципу "покупайте нашу хренотень!"

    Ещё тесты заставляют смотреть, изверги

     

  • 1.45, pavlinux (ok), 01:59, 28/10/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    1-й косяк, то что это копирование одинаковых файлов,
    которые после первого копирования будут частично жить
    в оперативке.
    Так шо, для объективности, очередность тестов нужно проводить 5! (120) раз!!!
    т.е.
    Ext2, Ext3, Ext4, Reiser3, VFat, NTFS
    Ext3, Ext2, Ext4, Reiser3, VFat, NTFS
    ...
    ...
    NTFS, VFat, Reiser3, Ext4, Ext2, Ext3
    NTFS, VFat, Reiser3, Ext4, Ext3, Ext2

    Либо создать тестовую платформу, только с libc, mount, mkfs и time
    и делать ребут после каждого теста.

     
     
  • 2.49, Аноним (-), 10:26, 28/10/2010 [^] [^^] [^^^] [ответить]  
  • +/
    достаточно ядра + busybox. в нем это все есть.
     
     
  • 3.53, pavlinux (ok), 11:42, 28/10/2010 [^] [^^] [^^^] [ответить]  
  • +/
    > достаточно ядра + busybox. в нем это все есть.

    Ну в общем смысл понятен - статическая предсказуемая, в пределах погрешности, система.


     

  • 1.54, sluge (ok), 11:45, 28/10/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    рейзер позорище. правильно что его в ядро не включили
     
     
  • 2.59, z (??), 14:00, 28/10/2010 [^] [^^] [^^^] [ответить]  
  • +/
    ReiserFS (Reiser3.6) - первая журналируемая FS, включенная в основную ветку linux ядра
     
     
  • 3.60, sluge (ok), 14:37, 28/10/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    я про четверу
     
     
  • 4.61, z (??), 14:49, 28/10/2010 [^] [^^] [^^^] [ответить]  
  • +/
    В чём тогда позор в контексте топика?
     
  • 4.70, howto (?), 09:08, 29/10/2010 [^] [^^] [^^^] [ответить]  
  • +/
    тролле
     

  • 1.73, Аноним (-), 14:26, 01/11/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Как начинают напрягать обратные слэшы вместо прямых\-:
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру