*   >> Чтение Образование Статьи >> tech >> web development

Один MySQL Совет Производительность вы должны запустить See

I около двадцати сайтов, ранее расположенные на двух поделился учетные записи хостинга. Последний месяц мои хозяева, как самостоятельно, так закрыл меня на протяжении использования процессора. Достаточно ярмарка, я не думаю, что я был злоупотреблении счета, но я не делаю правила. Я сразу же начал искать альтернативы и решил на Go Daddy выделенного хостинга. Цена была права, и чуть более $ 100 в месяц я получил хороший сервер с 2 Гб памяти, 500 Гб трафик за месяц, быстрый CPU всех к моей личности, злоупотреблять, как я вижу fit.Fast ждем UFC 77.

Вы видите, Я бегу веб-сайт, который делает UFC прогнозы и результаты UFC. На бой ночью, на сайте можно получить довольно занят, мой предыдущий максимум был 18000 посетителей в 3 часа или около того, что бои происходят. Мой виртуальный хостинг аккаунт не было проблем с этим нагрузки, по крайней мере, не так далеко, как я мог сказать. Тем не менее, с UFC 77 по моей новой выделенного хостинга зарегистрированы мой сервер ударил в кирпичную стену. Процессор был на 100% и было 200 Apache обрабатывает все, борющихся за имеющейся процессора и памяти.

Сразу начал искать причины и что еще более важно решений. Три дня спустя я думаю, что я большую часть моей answers.It важно знать, что Go Daddy не виноват, я попросил коробку с определенными характеристиками, и это именно то, что они дали мне, в комплекте со всем программным обеспечением, они сказали. MySQL, PHOP 4.3.9 и 2.0.52 Apache. Поэтому я начал искать (если сервер успокоилась) на то, что происходит, когда пользователь запросил страницу. Первое, что я заметил, было то, что текущий процесс Apache будет принимать около 5% CPU, я не обращал внимания на то, как долго он побежал.

Следующая вещь, которую я заметил, было то, что MySQL будет также принимать значительное процессор, если только в течение короткого периода времени. Это важно знать, что во время UFC 77 MySQL принимает около 50% CPU для всей напряженный период. Время поиска для некоторых optimizations.For моем сайте, где есть 20000 посетителей в 3 часа и, возможно, 10 обновлений в течение этого времени, кэширование, очевидно, будет полезно. Я заметил, поиск в Интернете, что Apache имеет некоторые кэширование, и даже лучше некоторое мин кэширование, однако это не считается производство готово в 2.0.

52 сборки, что у меня, так что я отказаться от этой идеи довольно быстро. Я тем не менее заметить некоторые вещи, когда я смотрел на MySQL optimizations.The наиболее важную оптимизацию MySQL, что я нашел это опция query_cache_size. Вы видите, MySQL имеет это понятие кэширования запросов, вот простое объяснение. Если я делаю простой запрос, saySELECT customer_name от клиента, где customer_id> 10 (Знаю, глупый запрос) Вообще база данных проходит через все это волшебство и возвращает обратно результирующий набор всех клиентов имена, которые годов идентификаторы больше, чем 10.

Для этот запрос не будет очень долго, но более сложный запрос, тем больше времени займет. Тем не менее, с кэшированием запросов MySQL, результат этого запроса будет храниться в памяти, вместе с самим запросом, это означает, что в следующий раз, тот же запрос был запустить базу данных будет просто проверить, что нет таблицы в запросе не были изменены, а затем посмотреть результат в памяти и вернуть ее. Это намного быстрее. MySQL имеет кэширование запросов включена по умолчанию, но переменная query_cache_size установлен в 0, по существу, отключив функцию.

Чтобы включить его нужно делать: query_cache_size = 64M в my.cnfNote: Я также увеличил свой query_cache_limit к 4М и моей thread_cache_size к 384. Есть много других вариантов, которые MySQL вы можете установить для повышения производительности, посмотрите хорошую книгу MySQL или может быть, я выложу некоторые из них на моем открытым исходным кодом депо блоге на www.open-source-depot.com/blog.After~~pobj заходящего эти варианты в my.

cnf вам нужно перезапустить MySQL, в том, что я вроде нетерпелив, и я не хотел перезапуск процессов я пошел в командной строке MySQL и установить глобальные настройки. По какой-то причине 64M не работает для меня, так как я использовал расширенную (байт) versioni.e MySQL> SET GLOBAL query_cache_size = 60000000; чтобы увидеть, что установить, сделать: MySQL>

Page   <<       [1] [2] [3] >>
Copyright © 2008 - 2016 Чтение Образование Статьи,https://ru.nmjjxx.com All rights reserved.