- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравствуйте.
Имеется сервер с 12 Гб ОЗУ. При генерации страниц используется чтение текстовых файлов с диска, общий объем около 11 Гб. Профилирование показывает, что больше всего времени при исполнении скриптов тратится именно на чтение текстовых файлов (винты 3xSATA в массиве ZFS raidz). Хочу отдать 6 Гб ОЗУ кешу ZFS, рассчитывая на то, что самые часто используемые файлы попадут в ОЗУ и среднее время улучшится. На разделе с mysql primarycache=metadata. Установил vfs.zfs.arc_max 6G, но используется только 1400 Мб. При этом на чтение 20-ти файлов по 50 кбайт уходит до 2-х секунд (в часы "пик"; повторное чтение тех же 20-ти файлов не происходит быстрее, в кеш они не попадают, следовательно). Возможно, кто-то подскажет, как заставить ZFS использовать кеш полнее? Вот выдача скрипта
------------------------------------------------------------------------
System Summary Fri Jan 7 20:20:39 2011
FreeBSD 8.0-STABLE #1: Tue Mar 9 12:36:22 UTC 2010 root
Kernel Version: 800504 (osreldate)
Hardware Platform: amd64
Processor Architecture: amd64
8:20PM up 10 days, 2:35, 2 users, load averages: 0.22, 0.20, 0.17
------------------------------------------------------------------------
Physical Memory: 12263.99M
Page Size: 4096
Kernel Memory
TOTAL: 1135.77M
DATA: 98.69% 1120.88M
TEXT: 1.31% 14.89M
ARC Summary
Storage pool Version: 14 (spa)
Filesystem Version: 3 (zpl)
Memory Throttle Count: 1084
ARC Misc:
Deleted: 46591582
Recycle Misses: 53124329
Mutex Misses: 346671
Evict Skips: 346671
ARC Size:
Current Size: 22.69% 1393.97M (arcsize)
Target Size: (Adaptive) 16.67% 1024.00M (c)
Min Size (Hard Limit): 16.67% 1024.00M (c_min)
Max Size (High Water): ~6:1 6144.00M (c_max)
ARC Size Breakdown:
Recently Used Cache Size: 73.46% 1024.00M (p)
Frequently Used Cache Size: 26.54% 369.97M (arcsize-p)
ARC Hash Breakdown:
Elements Max: 444308
Elements Current: 15.23% 67687
Collisions: 17802432
Chain Max: 11
Chains: 7356
ARC Efficiency:
Cache Access Total: 564059878
Cache Hit Ratio: 86.23% 486362988
Cache Miss Ratio: 13.77% 77696890
Actual Hit Ratio: 84.51% 476669702
Data Demand Efficiency: 90.47%
Data Prefetch Efficiency: 21.45%
CACHE HITS BY CACHE LIST:
Anonymous: --% Counter Rolled.
Most Recently Used: 23.26% 113124076 (mru)
Most Frequently Used: 74.75% 363545626 (mfu)
Most Recently Used Ghost: 2.40% 11652972 (mru_ghost)
Most Frequently Used Ghost: 6.62% 32174703 (mfu_ghost)
CACHE HITS BY DATA TYPE:
Demand Data: 82.31% 400348953
Prefetch Data: 0.70% 3423529
Demand Metadata: 15.48% 75282378
Prefetch Metadata: 1.50% 7308128
CACHE MISSES BY DATA TYPE:
Demand Data: 54.28% 42172596
Prefetch Data: 16.14% 12537851
Demand Metadata: 22.62% 17574445
Prefetch Metadata: 6.97% 5411998
L2 ARC Stats: (enabled with access > 0) 0
VDEV Cache Summary
Access Total: 42402903
Hits Ratio: 33.53% 14219105
Miss Ratio: 66.47% 28183798
Delegations: 1071278
ZFS Tunable (sysctl):
kern.maxusers=384
vfs.zfs.arc_meta_limit=1610612736
vfs.zfs.arc_meta_used=1456834896
vfs.zfs.mdcomp_disable=0
vfs.zfs.arc_min=1073741824
vfs.zfs.arc_max=6442450944
vfs.zfs.zfetch.array_rd_sz=1048576
vfs.zfs.zfetch.block_cap=256
vfs.zfs.zfetch.min_sec_reap=2
vfs.zfs.zfetch.max_streams=8
vfs.zfs.prefetch_disable=0
vfs.zfs.recover=0
vfs.zfs.txg.synctime=5
vfs.zfs.txg.timeout=30
vfs.zfs.scrub_limit=10
vfs.zfs.vdev.cache.bshift=16
vfs.zfs.vdev.cache.size=10485760
vfs.zfs.vdev.cache.max=16384
vfs.zfs.vdev.aggregation_limit=131072
vfs.zfs.vdev.ramp_rate=2
vfs.zfs.vdev.time_shift=6
vfs.zfs.vdev.min_pending=4
vfs.zfs.vdev.max_pending=35
vfs.zfs.cache_flush_disable=1
vfs.zfs.zil_disable=0
vfs.zfs.version.zpl=3
vfs.zfs.version.vdev_boot=1
vfs.zfs.version.spa=14
vfs.zfs.version.dmu_backup_stream=1
vfs.zfs.version.dmu_backup_header=2
vfs.zfs.version.acl=1
vfs.zfs.debug=0
vfs.zfs.super_owner=0
vm.kmem_size=8589934592
vm.kmem_size_scale=3
vm.kmem_size_min=0
vm.kmem_size_max=8589934592
Есть вариант кешировать файлы самому, используя, к примеру, memcached, но, кажется, если в ФС есть такая возможность, она должна работать быстрее и без костылей.
Похоже что ZFS на фре существует для галочки, а в продакшене ее использовать нельзя...
Похоже что ZFS на фре существует для галочки, а в продакшене ее использовать нельзя...
обидно однако :( неужели придется делать костыли?
Похоже что ZFS на фре существует для галочки, а в продакшене ее использовать нельзя...
сейчас сюда придут айзен и лисяра и надают вам тумаков :D
ну же, господа, предполагайте изложения, т.е. излагайте предположения.
Профилирование показывает, что больше всего времени при исполнении скриптов тратится именно на чтение текстовых файлов (винты 3xSATA в массиве ZFS raidz).
...много их и что за файлы?
может быть посмотреть скрипты, например, используется ли там буферизация при чтении файлов?
может быть использовать AIO (ассинхронный ввод/вывода)
так же может быть кэшировать дескрипторы открываемых файлов в скрипте...
файлы стоят в одном каталоге? может в ввиде кэша по каталогам их расставить...
может быть использовать PostgreSQL или какую-то распределенную систему для хранения и отдачи файлов... (картинки и т.д.)
ZFS - не хранит данные распределенно, а только очень надежная FS
Здравствуйте.
Имеется сервер с 12 Гб ОЗУ.
Обновитесь до 8.2 там много багов исправлено с ZFS
vlad11 добавил 11.01.2011 в 20:33
Похоже что ZFS на фре существует для галочки, а в продакшене ее использовать нельзя...
Если не кормить троллей, то они сдохнут с голода. :)
Обновитесь до 8.2 там много багов исправлено с ZFS
хм...до релиз кандидата? а по сравнению с 8.1 также исправлено?
хм...до релиз кандидата? а по сравнению с 8.1 также исправлено?
да. После выхода 8.1 было найдено пару неприятных кернел-паников связанных с ZFS.
патч v28 ZFS пока не рекомендую ставить. пусть еще потестят.
...много их и что за файлы?
файлы с текстом, мелкие, их более ста тысяч
может быть посмотреть скрипты, например, используется ли там буферизация при чтении файлов?
может быть использовать AIO (ассинхронный ввод/вывода)
так же может быть кэшировать дескрипторы открываемых файлов в скрипте...
вы описали методы как можно это дело ускорить без кеша zfs, которые я не хочу, но буду вынужден применять, если ничего не получится с кешем zfs, насколько я понял, он должен всё это делать прозрачно (и быстро), т.е. кешировать файлы в оперативке, а скрипты будут читать их используя обычные команды чтения с дисков.
файлы стоят в одном каталоге? может в ввиде кэша по каталогам их расставить...
по сотне каталогов раскиданы.
все таки мало информации, я не знаю что это за система...
и может, что проблема не в этом :D