- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как удалить плохие SEO-ссылки и очистить ссылочную массу сайта
Применяем отклонение ссылок
Сервис Rookee
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравствуйте.
Есть достаточно мощный сервер (6 ядерный Xeon, 128 Gb оперативки, аппаратный RAID 6).
На нем установлен Wordpress. Туда идет автоматический постинг контента в однопоточном режиме с локального компа.
Процесс идет достаточно долго, например на аплоадинг одной статьи весом 100 Кб уходит по 10 секунд. Но это ненормально, такая статья должна грузится за секунду.
Сервер в данный момент не загружен, процессор загружен на 10%, iowait 0,5%, канал полностью свободен.
В чем может быть причина?
Настройки mysql?
Zakazchik2017, Php-fpm поставить и постить в 100 потоков непарясь:)
Причина - в голове. Которая вместо правильной архитектуры из нескольких мелких дешевых VDS сделал тупо один мощный сервер.
Дорого, глупо, медленно.
Zakazchik2017, Php-fpm поставить и постить в 100 потоков непарясь:)
Так он стоит.
Канал не нагружен.
Дорого, глупо, медленно.
Что-то я не понял как один неделимый сайт можно разместить на нескольких дешевых VDS? 😕
Zakazchik2017, без профайлинга тут не обойтись. Трудно гадать, тем более не зная полностью кода сайта и настроек сервера.
Может быть несколько узких мест:
1. На уровне TCP - пропускная способность, задержка установки соединения.
2. На уровне PHP - как именно обрабатывается запрос.
3. На уровне MySql.
4. На уровне клиента, который загружает контент - все ли корректно работает?
Вам надо замерять время. Правило №1 при работе с быстродействием: "Never guess about performance, measure it". Разбейте 10 секунд как минимум на 3 составляющие - сколько из тратится на собственно передачу данных, сколько - в коде PHP и сколько - в MySql, после этого можно будет думать дальше.
А без этого можно долго гадать на кофейной гуще и с апломбом писать рецепты из аресенала капитана Очевидности.
В общем, удалось решить вопрос. Теперь постинг идет со скоростью 1 материал/ сек.
Для этого провел тонкую оптимизацию MYSQL (особо влиял параметр open_files_limit, который пришлось поставить равным = 1000000, и innodb_buffer_pool_size=16000M)
Также лимиты по открытым файлам на процессы в etc/security/limits.conf
Тонко настроил по рекомендациям для высоконагруженных проектов Sysctl.conf, httpd.conf. nginx.conf, php-fpm.conf.
Однако, по-моему сервер все равно не работает в полную силу. Нагрузка процессора 25%, канал занят на 3 Мбит из 100…
Реально ли выжать что-то большее, или идут уже какие-то фундаментальные ограничения? Потому что например FTP также грузит канал где-то на 5-6 Мбит из 100, непонятно что мешает серверу работать быстрее?
Хотелось бы увеличить скорость постинга до 5 страниц/сек, благо ресурсы позволяют.
В общем, удалось решить вопрос. Теперь постинг идет со скоростью 1 материал/ сек.
Для этого провел тонкую оптимизацию MYSQL (особо влиял параметр open_files_limit, который пришлось поставить равным = 1000000, и innodb_buffer_pool_size=16000M)
Также лимиты по открытым файлам на процессы в etc/security/limits.conf
Тонко настроил по рекомендациям для высоконагруженных проектов Sysctl.conf, httpd.conf. nginx.conf, php-fpm.conf.
Однако, по-моему сервер все равно не работает в полную силу. Нагрузка процессора 25%, канал занят на 3 Мбит из 100…
Реально ли выжать что-то большее, или идут уже какие-то фундаментальные ограничения? Потому что например FTP также грузит канал где-то на 5-6 Мбит из 100, непонятно что мешает серверу работать быстрее?
Хотелось бы увеличить скорость постинга до 5 страниц/сек, благо ресурсы позволяют.
если аплоад на сервер не лимитирован провайдером, то можно поковырять sysctl
https://klaver.it/linux/sysctl.conf
если аплоад на сервер не лимитирован провайдером, то можно поковырять sysctl
https://klaver.it/linux/sysctl.conf
Попробую дополнить, но есть ли смысл?
База данных более 20 миллионов записей (несколько ГБ), может дело в ней уже? Каждый постинг это по сути перебор и выборка по сложному условию миллионов записей в нескольких таблицах (посты, категории, теги, связи, таксономия, аттачменты), может уже фундаментально ускорить невозможно? Хотя нагрузка на все (процессор, память, i/o, канал) не выше 20%.
Попробую дополнить, но есть ли смысл?
База данных более 20 миллионов записей (несколько ГБ), может дело в ней уже? Каждый постинг это по сути перебор и выборка по сложному условию миллионов записей в нескольких таблицах (посты, категории, теги, связи, таксономия, аттачменты), может уже фундаментально ускорить невозможно? Хотя нагрузка на все (процессор, память, i/o, канал) не выше 20%.
во-первых нужно оптимизировать my.cnf, во-вторых вынести tmpdir на tmpfs
сколько RAM на сервере? сколько отведено под key-buffers?
какие значения у:
sort_buffer_size
read_buffer_size
join_buffer_size
max_connections
thread_concurrency
query_cache_type
query_cache_limit
query_cache_size
ускорить фундаментально-то можно, например вынести на отдельный SSD
или если дофига памяти (>128Gb) на tmpfs
что показывает
free -m
у меня в базе 200+ таблиц, суммарно 600М+ строк, активно используется процентов 10% от объема базы, ничего нормально сервер не напрягается особо.
во-первых нужно оптимизировать my.cnf, во-вторых вынести tmpdir на tmpfs
сколько RAM на сервере? сколько отведено под key-buffers?
какие значения у:
sort_buffer_size
read_buffer_size
join_buffer_size
max_connections
thread_concurrency
query_cache_type
query_cache_limit
query_cache_size
Сервер с 128 Гб ОЗУ. База на аппаратном RAID 6, там дисковая система конечно хромает на скорость записи, сейчас думаю об выносе на SSD, но не думаю что на данный момент проблема в аппаратной части.
ОЗУ занято на 25%.
my.cnf
sort_buffer_size, read_buffer_size, join_buffer_size = 16 ГБ
max_connections = 5000
thread_concurrency = 32
query_cache_limit, query_cache_size = 512
p.s. потюнил sysctl в вашем примере, производительность (скорость аплоадинга) увеличило примерно на 20%.
Сейчас не понятно во что упирается. Думал в базу, но mysqltuner пишет что все прекрасно. Но нагрузка на сервер все равно до 30%. Было бы логично, что если он на пределе, она приблежалась бы к 100%.
Вот это еще не пробовал, надо сделать.