热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SoapServer-性能问题(可能与SQLite相关)-SoapServer-performanceissue(mightbeSQLiterelated)

YesterdayIvepostedquestionaboutSQLiteperformanceissues(TerribleperformanceinZendDbPDO

Yesterday I've posted question about SQLite performance issues ( Terrible performance in Zend Db PDO_sqlite insert and update queries ). After several tests It seems like the problem occurs only when methods are called through SoapServer (tried both native PHP SoapServer and Zend_Soap_Server classes).

昨天我发布了关于SQLite性能问题的问题(Zend Db PDO_sqlite插入和更新查询中的可怕性能)。经过多次测试似乎只有在通过SoapServer调用方法时才会出现问题(尝试了本机PHP SoapServer和Zend_Soap_Server类)。

Test case - calling 10 methods which use SQLite DB INSERT and UPDATE DB operations.

测试用例 - 调用10个使用SQLite DB INSERT和UPDATE DB操作的方法。

Here are several cases of how it works:

以下是几种工作原理:

1.Through the controller - without using Soap server. localhost:~0.3s, remote server:~0.3s

1.通过控制器 - 不使用Soap服务器。 localhost:~0.3s,远程服务器:~0.3s

2.Through the Soap server. 1st call. localhost:~1-2s, remote server:~7s!

2.通过Soap服务器。第一个电话。 localhost:~1-2s,远程服务器:~7s!

3.Through the Soap server. Several calls. localhost:~1-10s, remote server:~7s

3.通过Soap服务器。几个电话。 localhost:~1-10s,远程服务器:~7s

3rd case doesn't concern me that much, probably might be the local server performance issue. Important thing is that it works stable on remote server.

第三种情况并不关心我,可能是本地服务器性能问题。重要的是它在远程服务器上运行稳定。

On the other hand, 7 seconds for simple 10 method calls is increadibly long. Obviously - part of this 7 seconds is client-server communication, as case 1 omits that, but i don't think It should be that slow!

另一方面,简单的10个方法调用的7秒是可增长的。显然 - 这7秒的一部分是客户端 - 服务器通信,如案例1省略的那样,但我不认为它应该那么慢!

For debugging I'm logging everything, and what seems to happen is that the same SQLite methods called in case 1, take 0.00x-0.02s, here last for ~0.15-0.45s.

对于调试我正在记录所有内容,似乎发生的情况是在案例1中调用的相同SQLite方法,取0.00x-0.02s,此处最后为~0.15-0.45s。

What might be the issue? Is it normal thing that it slows down so drasticly when using SOAP? (It's my first soap server project).

可能是什么问题?使用SOAP时它是如此急剧减速是否正常? (这是我的第一个肥皂服务器项目)。

EDIT: another important log fact I've found:

编辑:我发现的另一个重要的日志事实:

Information -2012-04-26 13:08:07.782679 Class: SoapController. Method: SoapController::hadleWSDL. Line: 18.

信息-2012-04-26 13:08:07.782679类:SoapController。方法:SoapController :: hadleWSDL。行:18。

Information-2012-04-26 13:08:08.318641 * SYSTEM START UP *

信息-2012-04-26 13:08:08.318641 *系统启动*

So that's basicly time between 2 methods being called. Over 0.5s for client-server communication with a little amount of data seems a lot to me. Here's the code for handleWSDL action:

所以这就是调用两种方法之间的基本时间。使用少量数据进行客户端 - 服务器通信超过0.5秒对我来说似乎很重要。这是handleWSDL操作的代码:

$optiOns= array(
    'encoding' => 'UTF-8',
    'cache_wsdl' => WSDL_CACHE_BOTH,
    'uri' =>$this->_WSDL_URI
);  
$soap = new Zend_Soap_Server(null, $options); 
$soap->setClass('SoapServerFunction');
$soap->setObject(new SoapServerFunction());
$soap->handle();

The application is really simple - SOAP method takes 1 parameter, and basing on it 1 cached object is created, data is being processed, and part of data is returned in XML format.

应用程序非常简单 - SOAP方法接受1个参数,并在此基础上创建1个缓存对象,正在处理数据,并以XML格式返回部分数据。

Thank you in advance for any suggestions what I can do to either make it faster or how to track what's the real reason of slowing down.

提前感谢您提出的任何建议,我可以做些什么来加快速度,或者如何跟踪减速的真正原因。

Best regards!

最好的祝福!

1 个解决方案

#1


0  

Do you use a FQDN for the server's address? In that case it might actually be DNS-related. You might also want to try everything on a real system and not on a virtual host, as you will not have much control over what the physical system is actually doing.

您是否使用FQDN作为服务器的地址?在这种情况下,它实际上可能与DNS相关。您可能还想尝试在真实系统上而不是虚拟主机上的所有内容,因为您无法控制物理系统实际执行的操作。

Secondly, I would recommend installing xdebug and use kcachegrind or wincachegrind, which will give you a much more detailled view of what your system is doing.

其次,我建议安装xdebug并使用kcachegrind或wincachegrind,这将为您提供更详细的系统视图。

Thirdly, you may log slow queries by utilizing PostgreSQLs pg_stat_statements().

第三,您可以使用PostgreSQLs pg_stat_statements()记录慢查询。


推荐阅读
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 本文讨论了在Spring 3.1中,数据源未能自动连接到@Configuration类的错误原因,并提供了解决方法。作者发现了错误的原因,并在代码中手动定义了PersistenceAnnotationBeanPostProcessor。作者删除了该定义后,问题得到解决。此外,作者还指出了默认的PersistenceAnnotationBeanPostProcessor的注册方式,并提供了自定义该bean定义的方法。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • 本文介绍了机器学习手册中关于日期和时区操作的重要性以及其在实际应用中的作用。文章以一个故事为背景,描述了学童们面对老先生的教导时的反应,以及上官如在这个过程中的表现。同时,文章也提到了顾慎为对上官如的恨意以及他们之间的矛盾源于早年的结局。最后,文章强调了日期和时区操作在机器学习中的重要性,并指出了其在实际应用中的作用和意义。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
author-avatar
淡若清芬_920
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有