Ускорение работы с сессиями PHP и их удаления с помощью виртуального диска

При работе веб-сервера происходит генерация огромного количества мелких файлов для сессий. Количество таких файлов может достигать много миллионов в суток. Как результат, рано или поздно исчерпывается лимит на количество файлов и система дает сбой. Приходится пересоздавать каталог и удалять старые сессии. Удаление такого количества сессий может создавать очень высокую нагрузку на сервер, мешая комфортной работе пользователей, а так же процесс удаления может происходить много суток. Могу предположить, что такие мелкие записи не очень полезны для винчестеров. Как же мгновенно удалять файлы сессий так, чтоб этого не замечали пользователи ? Для этого, можно воспользоваться записью информации о сессиях на диск в памяти. Такой диск мгновенно очищается и работает до тех пор пока не выключится питание сервера или пока размаунтится диск. На серверах в последнее время много оперативной памяти, поэтому, работа с дисками в памяти – прекрасное решение проблемы. При этом, происходит ощутимо меньше нагрузка на дисковые накопители, дисковые накопители дольше служат и система в целом работает ощутимо быстрее. Поделюсь опытом, как реализовал построение дисков я у себя на серверах. Создание диска в памяти Создаю BASH-файл create_ramdisk для создания диска: #!/bin/bash mkdir /sessions chmod 777 /sessions mount -t tmpfs -o size=32G tmpfs /sessions   Удаление диска из памяти Создаю BASH-файл del_ramdisk для удаления диска из памяти: del_ramdisk   Пересоздание диска в памяти (с очисткой данных) Создаю BASH-файл recreate для пересоздания диска: #!/bin/bash umount /sessions   Автоматизация пересоздания диска в памяти через Cron В /etc/crontab добавляю строчку: 00 3 * * * root /fw/ramdisk/recreate   Замена каталога сессий Делаем симлинк с каталога /sessions […]

Read more

Команда tail в Windows

Ранее я писал, как установить пакет для работы Linux-команд в Windows. Прошли годы и Microsoft реализовал в своих программных продуктах аналоги Linux машин. Таким образом, появился аналог команды tail. В PowerShell 3.0 (Windows 8 и выше) добавлена Tailкоманда с псевдонимом Last. Headи Firstпсевдонимы для TotalCount: Get-Content *filename* -Head *n* Get-Content *filename* -Tail *n*   Get-Content *filename* -TotalCount *n* Get-Content *filename* | Select-Object -last *n* Пример выполнения: Get-Content C:\ProgramData\FlyDoc\FlyDoc2\log\2022-02-10.txt -Tail -2 Или выводить последние строки по мере их поступления: Get-Content C:\ProgramData\FlyDoc\FlyDoc2\log\2022-02-10.txt -Wait Источник: https://qastack.ru/programming/1295068/windows-equivalent-of-the-tail-command http://microsin.net/adminstuff/windows/tail-for-windows.html      

Read more

Отключение файла подкачки в Linux

Как правило, файл подкачки приводит к торможению операционной системы, но он нужен часто для устойчивости системы. Тем не менее, если много памяти, то лучше его отключить. Отключить во время сеанса: sudo sysctl vm.swappiness=0 Для того, чтоб отключить на постоянно, необходимо отредактировать файл /etc/sysctl.conf: vm.swappiness=0   Источник: https://losst.ru/fajl-podkachki-linux

Read more