- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Зачем быть уникальным в мире, где все можно скопировать
Почему так важна уникальность текста и как она влияет на SEO
Ingate Organic
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравствуйте, господа!
Столкнулся со странной ситуацией.
На сервере (CentOS 5) есть аккаунт с вордпрессом. Аккаунтом заведует полупродвинутый пользователь, любящий устанавливать всякие плагины и т.п.
Я стал замечать возросшую нагрузку на винт. Когда нагрузка стала доходить до такой, что мешала работать всему серверу, я начал смотреть внимательно, что же происходит.
Оказалось, что при запросах типа domain.com/2008/01/01/1234/ вордпресс что-то пишет в /tmp
Это видно по iostat. Примерно вот так:
В данном случае /tmp симлинком перенаправлен на диск sdd1. Если /tmp размещен на другом диске (через mount или симлинком) запись соответственно идет на него.
Запись продолжается в течении пары секунд.
Вся фишка в том, что файлы при этом не создаются. Ни простым многочисленным ls, ни даже с использованием auditd (типа auditctl -w /tmp ... или auditctl -w /mntsdd/tmp...) не видно, чтобы в /tmp создавался какой-то файл, в который шла бы запись.
Вордпресс я никогда серьезно не использовал, поэтом разобраться в нем для меня было бы несколько проблематично. Вменяемой информации от пользователя что делает его вордпресс добиться не представляется возможным.
Может кто-то предположить, что и куда пишется на винт?
Например, временные таблицы mysql, которые представляют собой тут же удаляемые, но не закрытые файлы. Попробуйте несколько раз вызывать lsof | grep /tmp и может быть застанете момент и найдете что-то еще.
Есть такое мнение что для /tmp нужно использовать tmpfs. Память при этом не отъедается без необходимости, а запись на диск не ведется.
Много кто, включая mysql (весьма вероятно ваш случай).
Иногда nginx туда кидает большие запросы (это как настроите его каталоги) - подобные файлы
можно посмотреть например lsof (или просто ls -l /proc/<pid>/fd/).
-->8--$ sudo lsof -p `pidof mysqld`|grep tmp
mysqld 22680 mysql 6u REG 254,4 0 6145 /tmp/ibGX1aiF (deleted)
mysqld 22680 mysql 7u REG 254,4 119 6146 /tmp/ib62N8h4 (deleted)
mysqld 22680 mysql 8u REG 254,4 0 6147 /tmp/ibCHC6ht (deleted)
mysqld 22680 mysql 9u REG 254,4 0 6148 /tmp/ibAEpsiS (deleted)
mysqld 22680 mysql 13u REG 254,4 0 6149 /tmp/ib0BNbrh (deleted)
-->8--
Если есть предположение именно на скрипты вордпресса - что мешает
сделать strace их?
например, временные таблицы mysql, которые представляют собой тут же удаляемые но не закрытые файлы.
есть такое мнение что для /tmp нужно использовать tmpfs
Разве аудит не отловит незакрытые файлы?
Но в данном случае mysql вообще не причем - ему задана своя временная директория, в /tmp он не суется.
Если есть предположение именно на скрипты вордпресса - что мешает
сделать strace их?
Как практически это сделать на продакшн-сервере с десятком сайтов со средней нагрузкой?
Как практически это сделать на продакшн-сервере с десятком сайтов со средней нагрузкой?
допустим, скрипты у вас работают через mod_php.
тогда берем к-л чайлд апача и смотрим что-то типа:
strace -p <pid> -e trace=file
Попробуйте так, только директорию создайте предварительно и дайте права на запись пользователю от имени которого работает mysql.
допустим, скрипты у вас работают через mod_php.
тогда берем к-л чайлд апача и смотрим что-то типа:
strace -p <pid> -e trace=file
Да, mod_php используется.
Но я хрен что там найду в этом логе - чилдов много и десятки запросов в секунду к серверу...
Это разве что рядом отдельного апача запустить, да с одним чилдом. Может так и попробую, если никто ничего более простого не предложит...
vapetrov добавил 26.01.2010 в 17:39
Попробуйте так, только директорию создайте предварительно и дайте права на запись пользователю от имени которого работает mysql.
Сказано же, tmpdir задан для mysql и показывает на отдельную папку. mysql тут не причем.
Но я хрен что там найду в этом логе - чилдов много и десятки запросов в секунду к серверу...
Берете произвольный чайлд и смотрите. В конце концов к нему придут за нужным
сайтом, вордпрес можно будет узнать по тем файлам, к которым апач обращается.
как вариант - включать strace по триггеру проблемного события (резко возростает нагрузка на /tmp)
Спасибо, myhand, я попробую.
Но кто-нибудь пользовался auditd? Может кто-то пояснить, как может производится запись в директорию, а он этого не замечает?