У меня есть виртуальный сервер, на котором размещено несколько небольших сайтов в среде LAMP. Первоначально система была Debian 4, позже dist-обновлена до Debian 5. Она имеет 1 ГБ выделенной и 1 ГБ совместно используемой оперативной памяти и 20 ГБ дискового пространства.
В последнее время в системе начали проявляться тревожные тенденции случайного замедления при записи файлов в файловую систему (/dev/vzfs
). Когда происходят эти всплески медлительности, нагрузки начинают расти, но процессор остается в основном бездействующим - даже процент ожидания ввода-вывода остается в основном равным нулю. Вот обзор последнего раза, когда я столкнулся с проблемой, при сохранении файла конфигурации Apache размером 1 КБ, для сохранения которого потребовалось около 20 секунд:
top - 18:05:38 up 274 days, 11:50, 4 users, load average: 0.71, 0.25, 0.08
Tasks: 54 total, 1 running, 53 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni, 99.9%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 2097152k total, 471044k used, 1626108k free, 0k buffers
Swap: 0k total, 0k used, 0k free, 0k cached
В основном я программист и не имею большого опыта системного администрирования, поэтому не уверен, с чего мне начать. Любые указатели очень ценятся.
Обновить: Стандартные системные журналы не содержали никакой полезной информации об этом случае, поэтому я связался с поставщиком услуг и спросил, не перегружена ли хост-система. Они ответили, что загрузка системы нормальная, но мой контейнер, кажется, иногда превышает выделенные ему ресурсы. Вот строки из /proc/user_beancounters
с ошибкой> 0:
uid resource held maxheld barrier limit failcnt
shmpages 9744 19470 19567 19567 1
tcpsndbuf 306232 2453448 2449232 3598712 42347113
tcprcvbuf 299568 2459056 2449232 3598712 1640
othersockbuf 101640 843592 844366 1481926 140
numfile 3100 6000 6000 6000 11
Больше всего я превышаю tcpsndbuf
с явным отрывом. Однако я предполагаю, что это не должно повлиять на производительность файловой системы. В numfile
было превышено 11 раз (является ли это число за все время или с момента последней перезагрузки?) и похоже на то, что могло быть причиной проблемы. Половина открытых файлов, похоже, принадлежит apache2
, у которого есть все файлы журнала и .so, открытые для всех процессов. Может, поможет переход на Lighttpd или Nginx? Я проверю счетчики bean-счетчиков в следующий раз, когда система замедлится, и посмотрю, дает ли это какие-нибудь подсказки.
"vzfs" также может быть "намеком" здесь на использование zfs, которое может быть очень интенсивным в зависимости от того, какие из его функций используются - например, сжатие, дедупликация и т. д. Вы можете подумать о том, чтобы провести инвентаризацию того, что используется, и насколько это может быть эффективным для вашего конкретного использования.
Пример:
Если дедупликация включена, но коэффициенты дедупликации относительно низкие, то, возможно, стоит подумать о ее отключении, чтобы восстановить некоторый запас по обработке / производительности.
Ваш хост VPS перегружен. Вы не очень много делаете, но другие люди на хосте делают это, и это замедляет работу всех. Добро пожаловать в увлекательный мир VPS (и, что еще хуже, Parallels VPS, где прибыль достигается за счет бесконечного добавления клиентов). Я бы порекомендовал найти достойного провайдера VPS, а не самого дешевого.