如何将php5 MySQL扩展到200个请求/秒以上?
我正在调整我的主页的性能,目前它处理大约200个请求/秒3.14.by吃6个SQL查询,20个req?? /秒3.14.by/forum这是phpBB论坛.
奇怪的是,在某些VPS和专用的Atom 330服务器上,数字大致相同. 服务器软件如下:Apache2 mod_php prefork 4个孩子(这里试过不同的数字),php5,APC,nginx,memcached用于PHP会话存储. MySQL被配置为占用大约30%的可用RAM(VPS上约150Mb,专用服务器上700Mb) 这似乎有一个瓶颈,不允许我走高,任何建议? (即我知道少于6个SQL会使它更快,但这看起来不是一个限制因素,因为由于缓存的查询,sqld在顶部吃不超过几个百分点) 有没有人测试过踢preforked apache2并且只留下nginx php要快得多? 更多基准 Small 40-byte static file: 1484 r/s via nginx+apache2,2452 if we talk to apache2 directly. Small "Hello world" php script: 458 r/s via ngin+apache2. 更新: [client] port = 3306 socket = /var/run/mysqld/mysqld.sock [mysqld_safe] socket = /var/run/mysqld/mysqld.sock nice = 0 [mysqld] default-character-set=cp1251 collation-server=cp1251_general_cs skip-character-set-client-handshake user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp skip-external-locking bind-address = 127.0.0.1 key_buffer = 16M max_allowed_packet = 8M thread_stack = 64K thread_cache_size = 16 sort_buffer_size = 8M read_buffer_size = 1M myisam-recover = BACKUP max_connections = 650 table_cache = 256 thread_concurrency = 10 query_cache_limit = 1M query_cache_size = 16M expire_logs_days = 10 max_binlog_size = 100M [mysqldump] quick quote-names max_allowed_packet = 8M [mysql] [isamchk] key_buffer = 8M !includedir /etc/mysql/conf.d/
显然,你可以尝试很多.您最好的选择是为不使用索引(为其启用日志)和其他非优化查询的查询追踪日志.多年来,我已经编制了大量与性能相关的选项,所以我在这里列出了一小部分供您参考 – 希望它有所帮助.
以下是您可以尝试的一些常规说明(如果您还没有): MySQL的 > query_cache_type = 1 – 缓存SQL查询已启用.如果设置为2,则只有在将SQL_CACHE提示传递给它们时才会缓存查询.与类型1类似,您可以使用SQL_NO_CACHE提示禁用特定查询的缓存 阿帕奇 >更改产卵方法(例如以mpm为单位) PHP > variables_order =“GPCS”(如果您不需要环境变量) 操作系统调整 >使用-o noatime选项安装使用过的硬盘(无访问时间).还要将此选项添加到/ etc / fstab文件中.>调整/ proc / sys / vm / swappiness(从0到100)以查看最佳结果>使用RAM磁盘 – mount –bind -ttmpfs / tmp / tmp (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |