我在虚拟云托管(CityCloud)上运行带有 LAMP 的 Ubuntu 14 服务器。
服务器通常运行良好,响应时间<0.5秒。然而,问题开始于高峰时段,主要是周一至周三/周四,响应时间约为 7-8 秒或更长。通过传递给 worker MPM 和 php-fpm,这些时间几乎减少了一半,这要感谢 stackoverflow 上的 @drew010。
现在,我想看看是否可以进行最后的调整,以摆脱繁忙时段剩余的 3 秒平均加载时间。
根据 Google Analytics(分析)显示:该网站每月的页面浏览量约为 500 万次,高峰时段每小时的页面浏览量约为 1200-13000 次。
这是我的设置:
- Ubuntu 14.04.3 LTS
- PHP 版本 5.5.9,FPM/FastCGI
- 4 个 CPU 核心
- 8 内存
- 限制为 1 Gbps 带宽和 1 TB/月传输量
- 高峰时段 CPU 使用率 < 6%
- 内存使用量 < 2GB
- 高峰时段约 2M txbps
- 静态内容由单独的子域(同一台机器)提供,其过期标头为“访问期限加 1 个月”。
- MySQL 在同一台机器上运行。
- MySQL 查询已被测量得很快并且不存在问题。
显然,4 核/8 RAM 太多了。如果性能良好,我打算最多降级到 2 核/4 RAM。
这是高峰时段的 netstat 输出:
$ netstat -ant | awk'{打印$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:最小备用线程数 25 15:最大空闲线程数 75 16:线程限制 64 17:每个子线程数 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 更改表 2 Com_alter_tablespace 0 分析 0 开始 0 com_binlog 0 调用过程 0 更改数据库 1277679 Com_change_master 0 通讯检查 0 校验和 0 提交 0 com_create_db 0 com_create_event 0 Com_create_函数 0 com_create_index 0 创建过程 0 Com_create_server 0 com_create_table 0 Com_create_trigger 0 com_create_udf 0 创建用户 0 com_create_view 0 com_dealloc_sql 0 删除 19 Com_delete_multi 0 共 0 条记录 删除数据库 0 事件 0 Com_drop_function 0 删除索引 0 删除过程 0 Com_drop_server 0 删除表 0 Com_drop_trigger 0 Com_drop_user 0 删除视图 0 空查询 0 执行sql语句 刷新 0 通讯授权 0 Com_ha_close 0 Com_ha_open 0 Com_ha_read 0 帮助 0 插入 1301 插入选择 0 com_install_plugin 0 com_kill 0 负载 0 com_lock_tables 18 优化 1 Com_preload_keys 0 准备SQL 0 清除 0 Com_purge_before_date 0 Com_release_savepoint 0 重命名表 0 Com_rename_user 0 Com_repair 0 替换 7 Com_replace_select 0 重置 0 通讯信号 0 Com_revoke 0 Com_revoke_all 0 回滚 0 Com_rollback_to_savepoint 0 Com_保存点 0 Com_select 8939751 Com_set_option 2555998 通讯信号 0 Com_show_authors 0 Com_show_binlog_events 0 com_show_binlogs 94 com_show_charsets 0 com_show_collations 0 展示贡献者 0 com_show_create_db 18 com_show_create_event 0 Com_show_create_func 0 com_show_create_proc 0 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 节目展示事件 5 com_show_errors 0 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 77 显示表 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 卸载插件 0 解锁表 18 Com_update 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 创建临时磁盘表 731 Created_tmp_files 9 创建临时表 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 Handler_update 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_pages_written 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_page_size 16384 Innodb_pages_created 7 Innodb_pages_read 195 Innodb_pages_written 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 密钥块未刷新 0 密钥块未使用 10770 已使用密钥块 2626 密钥读取请求 167086090 Key_reads 2430 密钥写入请求 376494 Key_writes 303134 上次查询成本 0 最大使用连接数 8 Not_flushed_delayed_rows 0 打开文件 141 打开流 0 打开表定义 73 打开表 137 打开的文件 5062 打开的表定义 80 打开的表 150 Performance_schema_cond_classes_lost 0 Performance_schema_cond_instances_lost 0 Performance_schema_file_classes_lost 0 Performance_schema_file_handles_lost 0 Performance_schema_file_instances_lost 0 性能_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 准备语句计数 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 Slave_open_temp_tables 0 Slave_received_heartbeats 0 Slave_retried_transactions 0 Slave_running 关闭 Slow_launch_threads 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_session_cache_size 0 Ssl_session_cache_timeouts 0 Ssl_sessions_reused 0 Ssl_used_session_cache_entries 0 Ssl_verify_depth 0 Ssl_verify_mode 0 Ssl_版本 表锁_立即 9116984 表锁等待 178 Tc_log_max_pages_used 0 tc_log_page_size 0 Tc_log_page_waits 0 线程缓存 6 线程数_已连接 2 线程创建数 8 线程数 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 VDA 0.00 0.00 0.00 0.00 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 VDA 0.00 0.00 0.00 0.00 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 VDA 0.00 0.00 0.00 0.00 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 VDA 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 VDA 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 VDA 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 VDA 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 VDA 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 VDA 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 VDA 0.00 0.00 0.00 0.00 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 VDA 0.00 0.00 0.00 0.00 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 VDA 0.00 0.00 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 VDA 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 VDA 0.00 0.00 0.00 0.00 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 VDA 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 VDA 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 VDA 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 VDA 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 VDA 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 VDA 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 VDA 0.00 0.00 0.00 0.00 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 VDA 0.00 0.00 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 VDA 0.00 0.00 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 VDA 0.00 0.00 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 VDA 0.00 0.00 0.00 0.00 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 VDA 0.00 0.00 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 VDA 0.00 0.00 0.00 0.00 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 VDA 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 VDA 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 VDA 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 VDA 0.00 0.00 0.00 0.00 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 VDA 0.00 0.00 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 VDA 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 VDA 0.00 0.00 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 VDA 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 VDA 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 VDA 0.00 0.00 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 VDA 0.00 0.00 0.00 0.00 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 VDA 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 VDA 0.00 0.00 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 VDA 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 VDA 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 VDA 0.00 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。应大幅提高该值以支持突发请求。