???Global Memory 与 Thread Memory
MySQL 再配置记忆体时分成两各阶段,一是当 Server 启动时配置给整个系统使用,二是当 Client 连线进来的时候配置给单一连线使用。
前者被称为 Global 後者被称为 Thread , Memory 的总用量简单的说就是 Global + (Thread 数 * Thread Memory ) 这个公式所算出来的记忆体消耗应该要小於子系统的总记忆体,但是实务上测试时,系统记忆体不足就会回应 Too many connection 而暂停回应。
但是,源源不绝的 REQUEST 很容易让系统死当。通常 USED CONNECTION 会大量增加,是因为 TABLE LOCK ,导致新的 QUERY 被暂存,减低 TABLE LOCK 的时间与次数,才是解决问题之道。
但是 TABLE LOCK 一般是因为 SQL 查询写的不好,调整 SQL 语法费日旷时,救急的办法可以缩短 wait_timeout 的时间。但是这会增加 CPU LOADING ,要不断 TEST 以求取平衡。
- 关键字 : Thread, Memory, TABLE, Global, 这个公式所算出来, 记忆体消耗应该要小於子系统, 而暂停回应, 系统记忆体不足就会回应, 时候配置给单一连线使用, 总用量简单, 容易让系统死当, 实务上测试时, 启动时配置给整个系统使用, 办法可以缩短, 再配置记忆体时分成两各阶段, 会大量增加, 以求取平衡, wait_timeout, connection, Server
00
2009-05-20T13:26:28+0000
