在数据量大的情况下,数据库的性能成为一个至关重要的因素,随之带来Web服务器等待数据库的时间。在此基础上如果有大量的用户同时访问,那么会对Web服务器带来什么样的影响?以下主要讨论这个问题。
对于并发访问的处理,一般有两种处理机制:异步非阻塞机制、多线程阻塞机制(介绍略)。在测试选择上,前者使用基于Python的Tornado服务器,而后者使用基于Java的Tomcat服务器。注意:本文并非讨论开发语言的优劣,事实上,新版本的Java也支持异步机制,甚至高性能的epoll等。
测试工具:变态级的http_load
测试方法:使用该工具模拟1、10、100、1000个客户端并发访问以下场景,每次测试时间1分钟,得到服务器端每秒的总响应数。注意:由于Tomcat最大线程的限制(下面有提到)以及 *** 作系统对端口数量的限制,1000个并发已经能够得到明显的结论了。
测试场景:
静态文件的读写。一个html文件和一大一小两个图片,大小分别为676k、1.6M和12k,使用http_load工具随机读取。静态文件读写的耗时可以忽略不计的。
模拟一个耗时 *** 作,比如数据库 *** 作。注意:耗时 *** 作并不占用Web服务器本身的资源,它更多地体现的是Web服务器对并发访问处理的“合理”性。
mysql 连接线程被阻塞怎么解决1. 通过调用mysql_library_init(),初始化MySQL库。库可以是mysqlclient C客户端库,或mysqld嵌入式服务器库,具体情况取决于应用程序是否与“-libmysqlclient”或“-libmysqld”标志链接。 2. 通过调用mysql_init()初始化连接处理程序,并通过调用mysql_real_connect()连接到服务器。 3. 发出SQL语句并处理其结果。(在下面的讨论中,详细介绍了使用它的方法)。 4. 通过调用mysql_close(),关闭与MySQL服务器的连接。 5. 通过调用mysql_library_end(),结束MySQL库的使用。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)