Как ускорить апачский веб-сервер?

Мы настроили FlashCache, чтобы списать назад. Мы видим, что грязные блоки разрываются до нескольких десятков тысяч, но он быстро работает до нескольких тысяч или даже несколько сотен, когда все успокоится. Вот наши настройки:

dev.flashcache.sdb1+md0p3.cache_all=1
dev.flashcache.sdb1+md0p3.clean_on_read_miss=0
dev.flashcache.sdb1+md0p3.clean_on_write_miss=0
dev.flashcache.sdb1+md0p3.dirty_thresh_pct=10
dev.flashcache.sdb1+md0p3.do_pid_expiry=0
dev.flashcache.sdb1+md0p3.do_sync=1
dev.flashcache.sdb1+md0p3.fallow_clean_speed=100
dev.flashcache.sdb1+md0p3.fallow_delay=1
dev.flashcache.sdb1+md0p3.fast_remove=1
dev.flashcache.sdb1+md0p3.io_latency_hist=0
dev.flashcache.sdb1+md0p3.lru_hot_pct=75
dev.flashcache.sdb1+md0p3.lru_promote_thresh=2
dev.flashcache.sdb1+md0p3.max_clean_ios_set=300
dev.flashcache.sdb1+md0p3.max_clean_ios_total=2000
dev.flashcache.sdb1+md0p3.max_pids=100
dev.flashcache.sdb1+md0p3.new_style_write_merge=0
dev.flashcache.sdb1+md0p3.pid_expiry_secs=60
dev.flashcache.sdb1+md0p3.reclaim_policy=0
dev.flashcache.sdb1+md0p3.skip_seq_thresh_kb=0
dev.flashcache.sdb1+md0p3.stop_sync=0
dev.flashcache.sdb1+md0p3.zero_stats=0
1
10.08.2016, 15:49
1 ответ

Наилучшее сопротивление повреждению на одной карте SD предлагает BTRFS в режиме RAID1 с автоматической очисткой, выполняемой каждый заранее определенный период времени.

Преимущества:

  1. сохранение возможности RW для файловой системы
  2. современная, полнофункциональная файловая система с очень полезными опциями для RPi, такими как прозрачное сжатие и снимки
  3. , разработанные с учетом флэш-памяти (среди прочего)

Вот как это сделать:

Я запускаю свой RaspberurePi на ArchARM linux, и моя карта находится в устройстве чтения SD, поэтому измените эти инструкции соответствующим образом для других интерфейсов distros и/dev.

Вот пример компоновки раздела:

/dev/mmcblk0p1: fat32 boot partition
/dev/mmcblk0p2: to be used as btrfs partition
/dev/mmcblk0p3: to be used as btrfs partition (mirrored with the above)
/dev/mmcblk0p4 (optional): swap

Чтобы получить btrfs в RAID1, вы создаете файловую систему так:

mkfs.btrfs -m raid1 -d raid1 /dev/mmcblk0p2 /dev/mmcblk0p3

Затем вы rsync -aAXv в нее ваша ранее резервная система.

Для загрузки из BTRFS в raid1 необходимо изменить initramfs . Поэтому необходимо выполнить следующие действия, пока система работает в старой файловой системе.

Малина обычно не использует mkinitcpio, поэтому его необходимо установить. Затем необходимо добавить «btrfs» в массив MODULES в файле mkinitcpio.conf и повторно создать initramfs с помощью

mkinitcpio -g /boot/initrd -k YOUR_KERNEL_VERSION

Чтобы узнать, что вводить вместо YOUR_KERNEL_VERSION, запустите

ls /lib/modules

При обновлении ядра НЕОБХОДИМО заново создать initramfs перед перезагрузкой.

Затем необходимо изменить загрузочные файлы RPi.

В файле cmdline.txt необходимо указать

root=/dev/mmcblk0p2 initrd=0x01f00000 rootfstype=btrfs

, а в файле config.txt необходимо добавить

initramfs initrd 0x01f00000

После выполнения всех этих действий и успешной загрузки в систему btrfs RAID1 остается только установить периодическую очистку (каждые 3-7 дней) с помощью системного таймера (предпочтительно) или cron (dcron), например:

btrfs scrub start /

В файловой системе будет выполняться сравнение контрольных сумм всех файлов и их исправление (замена правильной копией), если обнаружится повреждение.

Сочетание RAID1 BTRFS, одиночной среды и Raspberry Pi делает это довольно загадочное вещество. Потребовалось некоторое время и работа, чтобы собрать все части вместе, но вот оно.

-121--11839-

Я думаю, вы должны попробовать это:

./gunzip_files.sh & &  ./grep_data_from_files.sh

Он выполняет второй сценарий, только если первый вышел без ошибок.

-121--244326-

Я бы установил Лак перед веб-сервером (или другим кэшем): https://www.varnish-cache.org/

Я написал небольшой блог на лак 3 здесь: http://aarvik.dk/varnish-cache-in-general-and-simple-static-files-configuration/

Это определенно поможет: -)

0
28.01.2020, 01:45

Теги

Похожие вопросы