улучшите mysql скорость сервера для приложения, размещенного на VPS

Даже вне темы Отравления ARP, Которое любой довольно хороший IDS может и обнаружит и надо надеяться предотвратит. (А также множество инструментов намеревалось предотвратить его). Корневой ролевой угон STP, Вторжение в маршрутизатор, спуфинг информации о Маршрутизации от источника, панорамирование VTP/ISL, список продолжается, В любом случае - существуют МНОГОЧИСЛЕННЫЕ методы к MITM сеть, физически не прерывая трафик.

1
задан 31 May 2011 в 17:00
3 ответа

Возможности являются Вашей конфигурацией, в порядке. Намного более вероятно, что существуют алгоритмические улучшения, которые будут сделаны в рамках Вашего кода. Вы не упоминали, была ли загрузка сгенерирована Apache, MySQL или чем-то еще. Это - первая вещь проверить. Если это - Apache, запустите путем профилирования кода PHP. xhprof превосходен для этого.

Если MySQL вероятен преступник, изучите журнал медленного запроса. Также проведите время с помощью оператора EXPLAIN.

Этот SQL-запрос является также подозреваемым:

SELECT `uid` FROM `obschaga_users` WHERE `uid`>0

Это похоже на него, собирается возвратить каждый uid во всей таблице (я сомневаюсь, что много uids отрицательны). Если этот запрос выполняется в Вашем приложении, это вероятно огромная проблема производительности. По крайней мере удостоверьтесь, что существует индекс на uid столбце. Однако действительно этот вид запроса никогда не должен использоваться. Должен быть способ иметь своего рода дополнительные условия поиска для сокращения возвращенного объема данных.

2
ответ дан 3 December 2019 в 17:20

Вы только показываете 3 процесса в своем списке, 2 из которых являются записями и 1 чтением. MyISAM делает блокировки таблицы для записей.

Можно играть все, что Вы хотите, но, вероятно, необходимо посмотреть на получение другого VPS и помещение одного только MySQL на нем. т.е. Имейте сеть/уровень приложений и уровень DB. Необходимо, вероятно, также серьезно посмотреть на миграцию на InnoDB, который имеет больший параллелизм / блокировка уровня строки.

Удачи

1
ответ дан 3 December 2019 в 17:20

Изменение моего комментария к ответу

  1. Удостоверьтесь, что Вы не исчерпываете свои максимальные соединения 60. Выполненный show status like 'Threads_connected'; в течение пикового времени, чтобы видеть, если Ваш удар максимума.

  2. Ваши буферные размеры для MySQL очень скромны. Обеспечение Apache не использует всю Вашу память, увеличьте их до чего-то как:

    bulk_insert_buffer_size=32M 
    join_buffer_size=4M 
    key_buffer_size=128M 
    max_allowed_packet=32M 
    query_cache_limit=4M 
    read_buffer_size=1M 
    read_rnd_buffer_size=2M 
    sort_buffer_size=8M 
    table_cache=128 
    tmp_table_size=32M
    
2
ответ дан 3 December 2019 в 17:20

Теги

Похожие вопросы