mysql代理,一方面要作为服务器让应用服务器作为客户端连接;另一方面也作为客户端去来连接真正的后端MySQL服务器。
mysql代理需要管理来自应用服务器的连接和与后端MySQL服务器的连接。
调试mysql proxy的过程中,配置了3个event线程,3个线程也包括了主线程。proxy的配置文件中的event-threads的值也将主线程计算在内,实际的event线程会比设定值少1。
同时配置1个master和2个slave服务器。
当应用服务器向代理发起10个连接后,proxy产生了10个与应用服务器的连接,4个与master的连接,每个slave分别2个连接。
测试结果发现应用服务器的连接和与后端的连接是没有存在明显的绑定关系。
比如应用服务器的连接是A~D,后端的连接是1~5,那么可能会出现A1~A5,B1~B5,……等network_mysqld_con对象,也就是说可以任意组合。
而且3个线程对sql的查询的负载一开始都在主线程上,后来均与分布到了3个线程中。
每个线程的监控对象是network_mysqld_con,并不仅仅是一个套接字。network_mysqld_con与线程也没有明显的绑定关系,会逐步均衡分布到不同的线程中,而且会动态变化的。
目前仍然有许多的疑问没有解决,包括每个线程处理的请求数目分布,与后端的连接的使用的分布等。
阅读(1737) | 评论(0) | 转发(0) |