Publish your project for free and start receiving offers from freelance contractors in serveral minutes after publication!
2 000 ₽

Медленная работа сайта

project complete


Есть сайт akirabooks.com в таком виде -новый проект. Залили уже под 150000 товаров. Движок cs-cart 4.3.2. Все открывается медленно. (хотя и на денвере где демонстрационка и только 249 наименований еще хуже). Существенная причина большой отклик сервера от 8 сек и выше. Поэтому разработчик кивает на хостинг, но хостинг кивает на разработчика - большое время прохождения запроса к базе - более 7 сек. Что можно сделать? ну как минимум выявить причину.

Выделенный сервер (виртуальная машина). Сегодня переехали на SSD, правда поставил маловато 2 ядра и 2 Гб оперативки. Без изменений. до этого был диск SATA - поднимал до 8 ядер и 26ГБ - Без изменений. Удалял все характеристики и параметры товаров - без изменений.

Все настроено в соответствии с требованиями разработчика.

1. Желательно использовать PHP версии 5.6 (это самая быстрая версия);

2. Нужно использовать OPcache (кеширует сгенерированный код PHP в память);

3. На сервере должен быть установлен mod_deflate (модуль Apache, который сжимает данные при передаче по сети);

4. Также стоит установить Imagick - это библиотека PHP, аналог GD для картинок для сжатия (таким образом картинки будут меньшего размера).

Нужно удалить ранее сгенерированные иконки (“Администрирование”-”Хранилище данных”-”Удалить сгенерированные иконки”) и в файле config.local.php поменять используемую библиотеку:

'image_resize_lib' заменить на 'imagick'.

5. Для кэша рекомендуется использовать APC, а для сессий - Redis т.е. строки в файле config.local.php должны выглядеть так:

$config['cache_backend'] = 'apc';

$config['session_backend'] = 'redis';

http://akirabooks.com/apc.php

http://akirabooks.com/info.php

Индексы в базе расставлены.

пример запроса, метрики и webpagetest прикрепляю в фале


Applications 1

Only registered users can view attachments.

Отзыв заказчика о сотрудничестве с Романом Романовым

Quality
Professionalism
Price
Availability
Terms

у Романа золотые руки, у нас новый проект - книги сайт akirabooks.com - долго мучились с медленной загрузкой страниц, большой ассортимент 300000 наименований, много категорий, подкатегорий, модулей и т.д., все это на новом движке сильно тормозило работу. Разработчик кивал на сервер, провайдер на разработчика. Назывались сомнительные решения с кучей нулей. Роман просто переписал все тяжелые запросы к базе данных. Сайт стал работать быстро. Фрилансер всегда на связи и днем и ночью. Все выполнил в срок. С ним очень приятно работать.

Отзыв фрилансера о сотрудничестве с кириллом Артамкин

Payment
Task formulation
Requirements
Availability

Приятный в общении заказчик. Никаких "левых" требований. Быстрая оплата. Рекомендую к сотрудничеству.

Роман Р. Роман Романов


Make a proposal!

The Customer does not want to make a prepayment? Payment through Safe will help avoid potential fraud.

  1.  freelancer isn't working in the service any longer
  2. 3 days3 000 ₽
    Anton Chernousov
     222   1  0

    День добрый. Есть большой опыт работы с нагруженными или просто кривыми проектами. Могу взяться, все померим посмотрим. Так с бухты-барахты конечно ничего сказать нельзя, но в целом и не такое оптимизировал.

    Skype: tech22.project
    E-mail: [email protected]

    Russia Novosibirsk | 27 July 2015 |
  3. 1 day1 000 ₴
    Сергей Просвирин
     243  verified   2  1

    Готов выполнить, большой опыт настройки серверов под высокие нагрузки.

    Ukraine Melitopol | 27 July 2015 |
  4. 1 day111 $
    Александр Х.
     248  verified 

    Здравствуйте!
    Готов сотрудничать в широком диапазоне задач
    ICQ 146450551

    Ukraine Odessa | 27 July 2015 |
  5. 3 days2 000 ₽Winning proposal
    Роман Романов
     231   4  1

    Готов выполнить.

    Ukraine Korosten | 27 July 2015 |
  • Страница сайта весит 35 кБ, непонятно зачем там механизмы сжатия и дополнительное кэширование.
    Возможно тормоз из-за них, но скорее всего проблема только

    в запросах к БД.
    То что вы удалили 150 тыс строк с сайта, не означает, что они удалены из базы - выборка осуществляется все равно из 150 тыс.
    Плюс таблица может быть не InnoDB. Для MyISAM 150 тыс - это уже много.



  • Такой сайт должен летать на одном 600 МГц ядре с 256 МБ свободной оперативки.

  • кирилл Артамкин — project author
    Complain | 27 July 2015 |

    параметры удалял из базы, потому как не нашел как на сайте, а характеристики с сайта.

  • кирилл Артамкин — project author
    Complain | 27 July 2015 |

    причем есть ошибка скрипта, которая вызвана именно большим количеством варианта одной характеристики - в данной случае автор книги. ошибка вываливается при поиске товара в админ панели, разработчик о ней знает, обещает исправить в след.версиях. она не критична, но сайт подвисает и выдает ошибку, сообщение об ошибке можно закрыть, но тормозит в админке.

  • кирилл Артамкин — project author
    Complain | 27 July 2015 |

    полез посмотрел - у меня таблица MyISAM

  • Хотя вообще нужно смотреть настройки MySQL, возможно у вас база не влазиет в оперативную память выделенную для MySQL и отсюда тормоза.

  • Все равно не настолько тупить будет.
    Сейчас работает: в пхп.ини оперативки 128МБ, запрос с джойнами к 5-ти таблицам, одна из них на 7,5 млн. строк - одна выборка 3-4 секунды максимум.
    Скорее всего, или запрос кривой, или он не один.

  • кирилл Артамкин — project author
    Complain | 27 July 2015 |

    вот красным:

    Innodb_buffer_pool_reads12Количество последовательных запросов на чтение, которые InnoDB не смог выполнить из буферного пула и использовал постраничное чтение.
    Handler_read_rnd344 kКоличество запросов, на чтение строки, основанных на ее позиции. Большое значение переменной может быть обусловлено частым выполнением запросов использующих сортировку результата, выполнением большого числа запросов требующих полного сканирования таблиц, наличием объединений не использующих индексы надлежащим образом.
    Handler_read_rnd_next5,776 kКоличество запросов на чтение следующей строки из файла данных. Данное значение будет высоким, при частом сканировании таблиц. Обычно это означает, что таблицы не проиндексированы надлежащим образом или запросы не используют преимущества индексов.
    Created_tmp_disk_tables605Количество временных таблиц, автоматически созданных сервером на диске, во время выполнения SQL-выражений. Если значение Created_tmp_disk_tables велико, следует увеличить значение переменной tmp_table_size, чтобы временные таблицы располагались в памяти, а не на жестком диске.
    Opened_tables15 kОбщее количество открывавшихся таблиц. При большом значении переменной рекомендуется увеличить размер кеша таблиц (table_cache).


  • Вообще нужно смотреть логи и разбираться.

  • Нужно переводить в InnoDB

  • с каких пор PHP 5.6 самая быстрая?
    может быть самая последняя?