По моему опыту, система (под) ведения журналов Apache не обеспечивает достаточно большого снижения производительности процессора даже на очень загруженных серверах, чтобы стоить искать оптимизацию на этом пути, поэтому ваши усилия по оптимизации могут быть более полезными, если вы считаете, что возможны другие варианты. узкие места, такие как ввод-вывод и отставание сети.
Во-первых, убедитесь, что HostNameLookups
Off
в вашем файле httpd.conf
(или httpd-vhosts.conf
). Этот параметр, если On
, добавляет достаточно существенную задержку при разрешении имен DNS, что может окупиться, чтобы отключить его на занятых серверах. Если вам необходимо разрешить имена DNS для целей статистики и отслеживания, я рекомендую использовать аппаратные средства распознавания DNS (маршрутизатор, коммутатор, брандмауэр), которые имеют возможность кэширования DNS и в большинстве случаев могут выполнять это асинхронно , а затем ссылаться на эти журналы при анализе данных трафика.
Во-вторых, проанализируйте производительность ввода-вывода вашего сервера и убедитесь, что частые записи (IIRC Apache на самом деле ничего не читает из этих файлов журналов, а просто добавляет их в виде файлового потока) не занимают значительного процента от общего объема операций ввода-вывода. O операции, которые ваш сервер может обрабатывать. На шпинделях (HDD) это может быть дорогостоящим, поэтому вы можете рассмотреть возможность распространения этих журналов на несколько физических дисков вместо записи их всех на один диск. Очевидно, что если вы используете жесткие диски , настоятельно рекомендуется переключиться на твердотельные накопители , поскольку они способны к гораздо более высоким IOPS. Также проверьте предложения для этого вопроса на сбое сервера.
Вы также можете проверить, что вы регистрируете только те запросы, которые вам действительно нужны. Зачастую запросы к некоторым типам файлов даже не нужны или могут быть перемещены в другие, более простые журналы, которые не потребляют столько системных ресурсов (т. Е. Не требуют преобразователя DNS, если эти данные регистрируются для других запросов). И то, и другое может быть установлено в вашем файле конфигурации Apache и может сэкономить вам микросекунду или две на каждый запрос (который может накапливаться).
Другими предложениями могут быть распределение нагрузки, перемещение некоторых наиболее часто используемых файлов в другое место и создание собственного CDN и т.д., Но они уже выходят за рамки вашего вопроса о производительности файла журнала Apache.