Ответы пользователя по тегу Серверная оптимизация
  • Как оптимизировать базу данных mysql?

    leahch
    @leahch
    3Д специалист. Долго, Дорого, Дерьмово.
    1) сначала проверьте, что нужные индексы подключаются к запросу. Изучите запрос EXPLAIN.
    2) если нужных индексов нет, постройте их.
    3) попробуйте нормализовать базу. Например, у нас в запросе участвуют всегда три колонки и куча остальных параметров. Отделите эти три параметра в отдельную колонку и один дополнительный ID. Вставку делайте двумя запросами, в транзакции, сначала параметры в одну таблицу, потом три колонки и получившийся ID в другую.
    4) если данных все равно много, то разбивайте таблицы на партий и по какому-то признаку, например по хешу.
    Ответ написан
    Комментировать
  • Как лучше хранить неизменяющиеся данные?

    leahch
    @leahch
    3Д специалист. Долго, Дорого, Дерьмово.
    Кешировать. Для этого и редис подойдет, и мемкеш. А лучше сразу упасть на hazelcast или apache ignite. Во первых, они распределенные, во вторых, работают с кучей языков, в третьих, при должной сноровке их можно накачать данными заранее, в четвертых, за ними вообще можно спрятать любую базу, ОРМ или поисковик. В результате, будете работать только через кеш, который будет в нужные моменты вываливать или сохранять данные пачками.
    Ответ написан
    Комментировать
  • Оптимизация mysql. Какие рекомендации mysqltuner стоит применить?

    leahch
    @leahch
    3Д специалист. Долго, Дорого, Дерьмово.
    Вообще-то тут у вас дело больше не в настройках мускула, а с организацией данных самой базы данных и вашими запросами!

    1)
    !!] Joins performed without indexes: 22423559

    Это говорит о том, что у вас есть запросы с join, при которых не работают индексы. Создайте нужные индексы и будет щазтие.

    2)
    Reduce your SELECT DISTINCT queries without LIMIT clauses

    Не забывайте указывать в запросах LIMIT, особенно, когда делаете DISTINCT.

    3) ну и уменьшите размер временных таблиц, или запросы, которые их создают.
    Ответ написан
    1 комментарий
  • Как включить кеширование страницы?

    leahch
    @leahch
    3Д специалист. Долго, Дорого, Дерьмово.
    А сайт-то на чем крутится? На apache? Вообще-то кеширование подразумевает наличие нескольких HTTP-заголовков, их то и нужно вставлять либо на стороне приложения, либо принудительно в http-сервере. Apache у вас? Тогда можно например вот так - httpd.apache.org/docs/current/mod/mod_expires.html
    Cache-Control: max-age=3600, must-revalidate
    Expires: Fri, 30 Oct 1998 14:19:41 GMT
    Last-Modified: Mon, 29 Jun 1998 02:28:12 GMT
    ETag: "3e86-410-3596fbbc"

    Вот статья на эту тему - https://habrahabr.ru/post/204464/
    Ответ написан
    Комментировать
  • Почему долго грузит сайт. Основной камень - document?

    leahch
    @leahch
    3Д специалист. Долго, Дорого, Дерьмово.
    Создайте пустую страницу с хелло ворлд и посмотрите сколько она грузится.
    Далее постепенно включайте джаваскрипт, а уж затем базу данных. Так за 5-7 итераций выясните где тормозит.
    Ответ написан
    Комментировать
  • Какие книги по серверной оптимизации связки mysql + apache на *.nix системах стоящие существуют?

    leahch
    @leahch
    3Д специалист. Долго, Дорого, Дерьмово.
    Вопрос немного некорректен. Есть отдельно оптимизация mysql, отдельно apache ( который в связке например с php) , отдельно php. Вот по всему этому есть отдельные книги.
    Но я бы порекомендовал снести индейца, поставить nginx, поставить php-fpm, поставить redis. Прикрутить redis к php, а php-fpm к nginx. Настроить nginx, mysql, php-fpm по отдельности и кешировать результаты работы mysql и php через редис.
    Ну и посмотреть на яву, питон и прочие альтернативы, вдруг понравится :-)
    Ответ написан
  • Почему redis работает лучше с maxmemory, чем без него?

    leahch
    @leahch
    3Д специалист. Долго, Дорого, Дерьмово.
    А случаем в swap он не уходит? Ну и чем измеряете "проседание"?
    Ответ написан
    Комментировать
  • Оптимизация скрипта при большом количестве запросов?

    leahch
    @leahch
    3Д специалист. Долго, Дорого, Дерьмово.
    А не пробовали эмулировать работу скрипта на простом sql? Что получается? Ну и без анализа самих запросов, типов данных и структуры таблиц сказать вообще ничего нельзя.
    Единственное, что можно порекомендовать- кешируйте данные на чтение. И если при работе тормозит процессор, то попробуйте параллелить задачу, а если тормозят диски - ставьте ssd. Другой путь - не сохранять в базу, а сохранять в память, например в redis, mongo, а уже потом перекидывать готовый результат куда нужно.
    И что-то неправильное в консерватории, если индексов на таблицу больше двух, максимум трех... Снесите индексы, проведите массивную вставку, создайте индексы заново. Ну и анализ запросов и explain в помощь.
    Что такого можно делать со 100к запросов?!
    Ответ написан
    Комментировать
  • Хранение статьи в БД. Какой путь выбрать?

    leahch
    @leahch
    3Д специалист. Долго, Дорого, Дерьмово.
    Конечно же третий, так как анонс и текст разные вещи, ну совсем. Тем более анонсов может бы и два, второй для мобильной версии.
    Ответ написан
    2 комментария
  • Как оптимизировать mysql?

    leahch
    @leahch
    3Д специалист. Долго, Дорого, Дерьмово.
    Ответов может быть несколько.
    1) Начните с включения логирования медленных запросов - www.stableit.ru/2009/12/mysql-slow-query-log.html
    2) Далее по каждому медленному запросу посмотрите как работают индексы и все ли нужные индексы построены (explain запроса)
    3) Посмотрите на типичные ошибки запросов - code.tutsplus.com/tutorials/top-20-mysql-best-prac...
    4) Если все это проделано, то начинайте оптимизировать базу данных (нормализовать): переделывать структуру таблиц, полей и самих запросов
    5) Оптимизируйте количество запросов к базе (испольуйте пул соединений), оптимизируйте характеристики настроек стека TCP системы, поставьте SSD и т.д.
    Ответ написан
    Комментировать
  • Где купить корпус u1?

    leahch
    @leahch
    3Д специалист. Долго, Дорого, Дерьмово.
    Например здесь. - www.xcom-shop.ru/search/?o=n&s=procase

    По хорошему, не рекомендую самому собирать 1U (охлаждение!!!). Лучше купить готовый, рекомендую покупать на платформе supermicro (корпус и/или плата). Можно там же, где и корпуча, а можно в server.trinitygroup.ru - 1U от 40 000 начинается!

    По сборке 1U - мы иногда собираем заказчикам, но это не сервер, а просто комп маломощный в корпусе 1U.
    Ответ написан