
Я использую сервер Ubuntu 14 с LAMP на виртуальном облачном хостинге (CityCloud).
Сервер обычно работает очень хорошо, время отклика <0,5 с. Однако проблемы начинаются в часы пик, в основном с понедельника по среду/четверг, со временем отклика около 7-8 секунд или больше. Это время было более или менее сокращено вдвое путем перехода к worker MPM и php-fpm, спасибо @drew010 на stackoverflow.
Теперь я хотел бы посмотреть, можно ли сделать какие-то последние изменения, чтобы избавиться от оставшихся 3 секунд среднего времени загрузки в часы пик.
По данным Google Analytics: веб-сайт получает около 5 миллионов просмотров страниц в месяц, а в часы пик — около 12–13 000 тысяч просмотров страниц в час.
Вот моя установка:
- Ubuntu 14.04.3 LTS
- PHP версии 5.5.9, FPM/FastCGI
- 4 ядра ЦП
- 8 ОЗУ
- Ограничено пропускной способностью 1 Гбит/с и передачей 1 ТБ/месяц
- < 6% использования ЦП в часы пик
- Используемая память < 2 ГБ
- ~2 млн тхб/с в часы пик
- Статический контент обслуживается из отдельного поддомена (на той же машине) с заголовками срока действия «доступ плюс 1 месяц».
- MySQL работает на той же машине.
- Запросы MySQL выполняются быстро и не вызывают проблем.
Очевидно, 4 ядра/8 ОЗУ — это слишком. Я намерен вернуться максимум к 2 ядрам/4 ОЗУ, если производительность будет хорошей.
Это вывод netstat в час пик:
$ netstat -ant | awk '{print $6}' | сортировка | uniq -c | сортировка -n 3 ЗАКРЫТИЕ 5 СЛУШАТЬ 8 FIN_WAIT1 69 ПОСЛЕДНИЙ_АКТ 80 SYN_RECV 117 СОЗДАН 147 FIN_WAIT2 1028 ВРЕМЯ_ОЖИДАНИЯ
Некоторая информация о сервере:
В файле: /etc/apache2/mods-enabled/mpm_worker.conf 13: Стартовые серверы 2 14: MinSpareThreads 25 15: Макс. кол-во свободных потоков 75 16: Ограничение потока 64 17: ThreadsPerChild 25 18: Макс. число запросов 150
Некоторые значения параметров ядра:
/proc/sys/net/core/somaxconn: 128 /proc/sys/net/core/netdev_max_backlog: 1000 /proc/sys/net/ipv4/tcp_max_syn_backlog: 256 /proc/sys/net/ipv4/ip_local_port_range: 32768 61000
MySQL «ПОКАЗАТЬ ГЛОБАЛЬНЫЙ СТАТУС»:
Прерванные_клиенты 7 Прерванные_подключения 14 Binlog_cache_disk_use 0 Binlog_cache_use 0 Binlog_stmt_cache_disk_use 0 Binlog_stmt_cache_use 0 Получено байт 7324492238 Байт_отправлено 33143229342 Com_admin_commands 0 Com_assign_to_keycache 0 Com_alter_db 0 Com_alter_db_upgrade 0 Com_alter_event 0 Com_alter_function 0 Com_alter_procedure 0 Com_alter_server 0 Com_alter_table 2 Com_alter_tablespace 0 Com_analyze 0 Com_begin 0 Com_binlog 0 Процедура_вызова_команды 0 Com_change_db 1277679 Com_change_master 0 Com_check 0 Com_checksum 0 Com_commit 0 Com_create_db 0 Com_create_event 0 Com_create_function 0 Com_create_index 0 Процедура_создания_команды 0 Com_create_server 0 Com_create_table 0 Com_create_trigger 0 Com_create_udf 0 Com_create_user 0 Com_create_view 0 Com_dealloc_sql 0 Com_delete 19 Com_delete_multi 0 Com_do 0 Com_drop_db 0 Com_drop_event 0 Com_drop_function 0 Com_drop_index 0 Процедура_передачи_команд 0 Com_drop_сервер 0 Com_drop_table 0 Com_drop_trigger 0 Com_drop_user 0 Com_drop_view 0 Com_empty_query 0 Com_execute_sql 0 Com_flush 0 Com_grant 0 Com_ha_close 0 Com_ha_open 0 Com_ha_read 0 Com_help 0 Com_вставка 1301 Com_insert_select 0 Com_install_plugin 0 Com_kill 0 Com_load 0 Com_lock_tables 18 Com_optimize 1 Com_preload_keys 0 Com_prepare_sql 0 Com_purge 0 Com_purge_before_date 0 Com_release_savepoint 0 Com_rename_table 0 Com_rename_user 0 Com_repair 0 Com_replace 7 Com_replace_select 0 Com_сброс 0 Com_resignal 0 Com_revoke 0 Com_revoke_all 0 Com_rollback 0 Com_rollback_to_savepoint 0 Com_savepoint 0 Com_выбрать 8939751 Com_set_option 2555998 Com_signal 0 Com_show_authors 0 Com_show_binlog_events 0 Com_show_binlogs 94 Com_show_charsets 0 Com_show_collations 0 Участники com_show_0 Com_show_create_db 18 Com_show_create_event 0 Com_show_create_func 0 Com_show_create_proc 0 Com_show_create_table 356 Com_show_create_trigger 0 Com_show_databases 28 Com_show_engine_logs 0 Com_show_engine_mutex 0 Com_show_engine_status 0 Com_show_events 5 Com_show_errors 0 Com_show_fields 381 Com_show_function_status 5 Com_show_grants 5 Com_show_keys 40 Com_show_master_status 43 Com_show_open_tables 0 Com_show_plugins 0 Com_show_privileges 0 Com_show_procedure_status 5 Com_show_processlist 1099 Com_show_profile 0 Com_show_profiles 0 Com_show_relaylog_events 0 Com_show_slave_hosts 0 Com_show_slave_status 1118 Com_show_status 1120 Com_show_storage_engines 0 Com_show_table_status 366 Com_show_tables 77 Com_show_triggers 324 Com_show_variables 1135 Com_show_warnings 0 Com_slave_start 0 Com_slave_stop 0 Com_stmt_close 0 Com_stmt_execute 0 Com_stmt_fetch 0 Com_stmt_prepare 0 Com_stmt_reprepare 0 Com_stmt_reset 0 Com_stmt_send_long_data 0 Com_truncate 0 Com_uninstall_plugin 0 Com_unlock_tables 18 Com_обновление 41612 Com_update_multi 0 Com_xa_commit 0 Com_xa_end 0 Com_xa_prepare 0 Com_xa_recover 0 Com_xa_rollback 0 Com_xa_start 0 Сжатие ВЫКЛ. Подключения 1277451 Созданные_tmp_disk_tables 731 Создано_tmp_файлов 9 Созданные_tmp_таблицы 3602 Задержанные_ошибки 0 Задержанные_вставки_потоков 0 Отложенные_записи 0 Flush_commands 1 Handler_commit 284 Handler_delete 19 Handler_discover 0 Handler_prepare 0 Handler_read_first 485 Handler_read_key 7814753 Handler_read_last 48790 Handler_read_next 55898210 Handler_read_prev 457247 Handler_read_rnd 223213 Handler_read_rnd_next 4231962515 Handler_rollback 0 Handler_savepoint 0 Handler_savepoint_rollback 0 Обновление_обработчика 40888 Handler_write 377375 Innodb_buffer_pool_pages_data 202 Innodb_buffer_pool_bytes_data 3309568 Innodb_buffer_pool_pages_dirty 0 Innodb_buffer_pool_bytes_dirty 0 Innodb_buffer_pool_pages_flushed 37 Innodb_buffer_pool_pages_free 7989 Innodb_buffer_pool_pages_misc 0 Innodb_buffer_pool_pages_total 8191 Innodb_buffer_pool_read_ahead_rnd 0 Innodb_buffer_pool_read_ahead 0 Innodb_buffer_pool_read_ahead_evicted 0 Innodb_buffer_pool_read_requests 2817 Innodb_buffer_pool_reads 196 Innodb_buffer_pool_wait_free 0 Innodb_buffer_pool_write_requests 86 Innodb_data_fsyncs 39 Innodb_data_pending_fsyncs 0 Innodb_data_pending_reads 0 Innodb_data_pending_writes 0 Innodb_data_read 5394432 Innodb_data_reads 206 Innodb_data_writes 67 Innodb_data_written 1235456 Innodb_dblwr_страницы_написаны 37 Innodb_dblwr_writes 9 Innodb_have_atomic_builtins ВКЛЮЧЕНО Innodb_log_waits 0 Innodb_log_write_requests 35 Innodb_log_writes 10 Innodb_os_log_fsyncs 21 Innodb_os_log_pending_fsyncs 0 Innodb_os_log_pending_writes 0 Innodb_os_log_written 17408 Размер_страницы_Innodb 16384 Innodb_pages_created 7 Innodb_pages_read 195 Innodb_страницы_написаны 37 Innodb_row_lock_current_waits 0 Innodb_row_lock_time 0 Innodb_row_lock_time_avg 0 Innodb_row_lock_time_max 0 Innodb_row_lock_waits 0 Innodb_rows_deleted 0 Innodb_rows_inserted 0 Innodb_rows_read 59 Innodb_rows_updated 7 Innodb_truncated_status_writes 0 Key_blocks_not_flushed 0 Key_blocks_unused 10770 Key_blocks_used 2626 Запросы_на_чтение_ключей 167086090 Ключевые_чтения 2430 Запросы_на_запись_ключей 376494 Key_writes 303134 Стоимость_последнего_запроса 0 Макс. количество_используемых_соединений 8 Не_сброшенные_задержанные_строки 0 Открытые_файлы 141 Открытые_потоки 0 Открыть_таблицу_определений 73 Открытые_таблицы 137 Открыто_файлов 5062 Открытые_таблицы_определений 80 Открыто_таблиц 150 Performance_schema_cond_classes_lost 0 Performance_schema_cond_instances_lost 0 Классы_файлов_схем_производительности_потеряны 0 Потеряно_дескрипторов_файлов_схем_производительности 0 Performance_schema_file_instances_lost 0 Performance_schema_locker_lost 0 Performance_schema_mutex_classes_lost 0 Performance_schema_mutex_instances_lost 0 Performance_schema_rwlock_classes_lost 0 Performance_schema_rwlock_instances_lost 0 Performance_schema_table_handles_lost 0 Performance_schema_table_instances_lost 0 Performance_schema_thread_classes_lost 0 Performance_schema_thread_instances_lost 0 Подготовлено_stmt_count 0 Qcache_free_blocks 2242 Qcache_free_memory 7441152 Qcache_hits 68078488 Qcache_inserts 8868017 Qcache_lowmem_prunes 4451717 Qcache_not_cached 71091 Qcache_queries_in_cache 6797 Qcache_total_blocks 16056 Запросы 82178544 Вопросы 82178543 Rpl_status AUTH_MASTER Выбрать_полное_присоединение 0 Выбрать_полный_диапазон_присоединиться 0 Выберите_диапазон 2041371 Выбор_диапазона_проверки 0 Выбрать_сканирование 1151738 Период_биения_ведомого_сердца 0 Подчиненные_открытые_временные_таблицы 0 Slave_received_heartbeats 0 Slave_retried_transactions 0 Ведомый_работает ВЫКЛ Медленные_потоки_запуска 0 Медленные_запросы 0 Сортировать_объединить_проходы 5 Диапазон_сортировки 878229 Сортировать_строки 236531 Сортировка_сканирования 869 Ssl_accept_renegotiates 0 Ssl_accepts 0 Ssl_callback_cache_hits 0 Ssl_шифр Ssl_cipher_list Ssl_client_connects 0 Ssl_connect_renegotiates 0 Ssl_ctx_verify_depth 0 Ssl_ctx_verify_mode 0 Ssl_default_timeout 0 Ssl_finished_accepts 0 Ssl_finished_connects 0 Ssl_session_cache_hits 0 Ssl_session_cache_misses 0 Ssl_session_cache_mode НЕТ Ssl_session_cache_overflows 0 Размер_кэша_сессии_ssl 0 Ssl_session_cache_timeouts 0 Ssl_sessions_reused 0 Ssl_used_session_cache_entries 0 Ssl_verify_depth 0 Режим проверки_Ssl 0 Версия_Ssl Табличные_блокировки_немедленные 9116984 Table_locks_waited 178 Tc_log_max_pages_used 0 Tc_log_page_size 0 Tc_log_page_waits 0 Threads_cached 6 Threads_connected 2 Threads_created 8 Threads_running 1 Время безотказной работы 423398 Uptime_since_flush_status 423398
iostat
выполняется в час пик:
$ iostat -xdk 1 Устройство: rrqm/s wrqm/sr/sw/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util вда 0,00 0,00 0,00 1,00 0,00 4,00 8,00 0,00 4,00 0,00 4,00 4,00 0,40 вда 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 вда 0,00 0,00 0,00 2,00 0,00 8,00 8,00 0,00 2,00 0,00 2,00 2,00 0,40 вда 0,00 0,00 0,00 17,00 0,00 96,00 11,29 0,00 0,00 0,00 0,00 0,00 0,00 вда 0,00 34,00 0,00 3,00 0,00 152,00 101,33 0,00 1,33 0,00 1,33 1,33 0,40 вда 0,00 0,00 0,00 1,00 0,00 4,00 8,00 0,00 0,00 0,00 0,00 0,00 0,00 вда 0,00 0,00 0,00 1,00 0,00 12,00 24,00 0,00 0,00 0,00 0,00 0,00 0,00 вда 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 вда 0,00 0,00 0,00 20,00 0,00 152,00 15,20 0,02 1,20 0,00 1,20 0,60 1,20 вда 0,00 44,00 0,00 2,00 0,00 188,00 188,00 0,00 2,00 0,00 2,00 2,00 0,40 вда 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 вда 0,00 0,00 0,00 2,00 0,00 8,00 8,00 0,00 2,00 0,00 2,00 2,00 0,40 вда 0,00 0,00 0,00 1,00 0,00 4,00 8,00 0,00 4,00 0,00 4,00 4,00 0,40 вда 0,00 74,00 0,00 146,00 0,00 908,00 12,44 0,30 2,08 0,00 2,08 0,05 0,80 вда 0,00 46,00 0,00 3,00 0,00 200,00 133,33 0,00 1,33 0,00 1,33 1,33 0,40 вда 0,00 0,00 0,00 4,00 0,00 16,00 8,00 0,00 1,00 0,00 1,00 1,00 0,40 вда 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 вда 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 вда 0,00 0,00 0,00 20,00 0,00 232,00 23,20 0,00 0,00 0,00 0,00 0,00 0,00 вда 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 вда 0,00 41,00 0,00 2,00 0,00 176,00 176,00 0,00 2,00 0,00 2,00 2,00 0,40 вда 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 вда 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 вда 0,00 0,00 0,00 17,82 0,00 118,81 13,33 0,00 0,00 0,00 0,00 0,00 0,00 вда 0,00 0,00 0,00 1,00 0,00 4,00 8,00 0,00 0,00 0,00 0,00 0,00 0,00 вда 0,00 42,00 0,00 4,00 0,00 188,00 94,00 0,00 0,00 0,00 0,00 0,00 0,00 вда 0,00 0,00 0,00 1,00 0,00 4,00 8,00 0,00 0,00 0,00 0,00 0,00 0,00 вда 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 вда 0,00 0,00 0,00 12,00 0,00 60,00 10,00 0,00 0,00 0,00 0,00 0,00 0,00 вда 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 вда 0,00 39,00 0,00 2,00 0,00 168,00 168,00 0,00 2,00 0,00 2,00 2,00 0,40 вда 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 вда 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 вда 0,00 0,00 0,00 16,00 0,00 76,00 9,50 0,00 0,00 0,00 0,00 0,00 0,00 вда 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 вда 0,00 32,00 0,00 2,00 0,00 140,00 140,00 0,00 2,00 0,00 2,00 2,00 0,40 вда 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 вда 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 вда 0,00 0,00 0,00 18,00 0,00 100,00 11,11 0,00 0,00 0,00 0,00 0,00 0,00 вда 0,00 0,00 0,00 1,00 0,00 4,00 8,00 0,00 0,00 0,00 0,00 0,00 0,00 вда 0,00 30,00 0,00 2,00 0,00 132,00 132,00 0,00 2,00 0,00 2,00 2,00 0,40 вда 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 вда 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 вда 0,00 0,00 0,00 12,00 0,00 48,00 8,00 0,00 0,00 0,00 0,00 0,00 0,00 вда 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 вда 0,00 37,00 0,00 3,00 0,00 164,00 109,33 0,01 2,67 0,00 2,67 2,67 0,80 вда 0,00 0,00 0,00 1,00 0,00 4,00 8,00 0,00 0,00 0,00 0,00 0,00 0,00 вда 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 вда 0,00 48,00 0,00 130,00 0,00 744,00 11,45 0,24 1,88 0,00 1,88 0,06 0,80 вда 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 вда 0,00 35,00 0,00 4,00 0,00 160,00 80,00 0,00 1,00 0,00 1,00 1,00 0,40 вда 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 вда 0,00 0,00 0,00 1,00 0,00 4,00 8,00 0,00 0,00 0,00 0,00 0,00 0,00 вда 0,00 0,00 0,00 19,00 0,00 172,00 18,11 0,00 0,00 0,00 0,00 0,00 0,00 вда 0,00 0,00 0,00 1,00 0,00 4,00 8,00 0,00 4,00 0,00 4,00 4,00 0,40 вда 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 вда 0,00 39,00 0,00 2,00 0,00 168,00 168,00 0,00 2,00 0,00 2,00 2,00 0,40 вда 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 вда 0,00 0,00 0,00 25,00 0,00 184,00 14,72 0,00 0,00 0,00 0,00 0,00 0,00 вда 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 вда 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 вда 0,00 48,00 0,00 2,00 0,00 204,00 204,00 0,00 0,00 0,00 0,00 0,00 0,00 вда 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 вда 0,00 0,00 0,00 18,00 0,00 104,00 11,56 0,00 0,22 0,00 0,22 0,22 0,40 вда 0,00 0,00 0,00 1,00 0,00 4,00 8,00 0,02 24,00 0,00 24,00 24,00 2,40 вда 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 вда 0,00 39,00 0,00 4,00 0,00 176,00 88,00 0,00 0,00 0,00 0,00 0,00 0,00 вда 0,00 0,00 0,00 1,00 0,00 4,00 8,00 0,00 0,00 0,00 0,00 0,00 0,00 вда 0,00 0,00 0,00 17,00 0,00 100,00 11,76 0,00 0,00 0,00 0,00 0,00 0,00 вда 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 вда 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 вда 0,00 38,00 0,00 3,00 0,00 168,00 112,00 0,00 0,00 0,00 0,00 0,00 0,00 вда 0,00 0,00 0,00 2,00 0,00 8,00 8,00 0,00 0,00 0,00 0,00 0,00 0,00 вда 0,00 0,00 0,00 16,00 0,00 100,00 12,50 0,00 0,00 0,00 0,00 0,00 0,00 вда 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 вда 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 вда 0,00 40,00 0,00 2,00 0,00 172,00 172,00 0,00 2,00 0,00 2,00 2,00 0,40 вда 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 вда 0,00 0,00 0,00 10,00 0,00 64,00 12,80 0,00 0,00 0,00 0,00 0,00 0,00 вда 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 вда 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 вда 0,00 34,00 0,00 2,00 0,00 144,00 144,00 0,00 2,00 0,00 2,00 2,00 0,40 вда 0,00 0,00 0,00 2,00 0,00 12,00 12,00 0,00 0,00 0,00 0,00 0,00 0,00 вда 0,00 55,00 0,00 117,00 0,00 732,00 12,51 0,28 2,43 0,00 2,43 0,10 1,20 вда 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 вда 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Любая помощь приветствуется! :-)
решение1
Вам необходимо увеличить /proc/sys/net/core/somaxconn
. Значение по умолчанию — 128. Значение следует существенно увеличить для поддержки всплесков запросов.