环境:
8核 12GB内存
服务端代码:
MessageBrokerService.Iface iface = SpringContext.getBean(MessageBrokerService.Iface.class); TServerTransport serverTransport = new TServerSocket(port); MessageBrokerService.Processor processor = new Processor(iface); Factory portFactory = new TBinaryProtocol.Factory(true, true); Args args = new Args(serverTransport); args.maxWorkerThreads(2000); args.minWorkerThreads(8); args.processor(processor); args.protocolFactory(portFactory); TServer server = new TThreadPoolServer(args); // 有多种server可选择 server.setServerEventHandler(new TServerEventHandlerImpl()); logger.info("start MessageBrokerService thrift server on port:"+port); server.serve();
测试方法:
String ping() ,返回 "PONG"字符串
性能数据描述:
concurrency:线程数
cost:耗时(毫秒)
count:执行次数
all_tps: 每秒总的TPS
per_thread_tps= all_tps / concurrency
性能测试结果:
runPingPerf,concurrency:8 cost:6821 count:200000 all_tps:29321 per_thread_tps:3665 runPingPerf,concurrency:16 cost:3586 count:200000 all_tps:55772 per_thread_tps:3485 runPingPerf,concurrency:50 cost:9318 count:200000 all_tps:21463 per_thread_tps:429 runPingPerf,concurrency:200 cost:9021 count:200000 all_tps:22170 per_thread_tps:110 runPingPerf,concurrency:8 cost:66163 count:2000000 all_tps:30228 per_thread_tps:3778 runPingPerf,concurrency:16 cost:34379 count:2000000 all_tps:58175 per_thread_tps:3635 runPingPerf,concurrency:50 cost:63974 count:2000000 all_tps:31262 per_thread_tps:625 runPingPerf,concurrency:200 cost:107447 count:2000000 all_tps:18613 per_thread_tps:93
系统负载
----total-cpu-usage---- -dsk/total- ---load-avg--- ------memory-usage----- -net/total- ---procs--- ----swap--- ---system-- usr sys idl wai hiq siq| read writ| 1m 5m 15m | used buff cach free| recv send|run blk new| used free| int csw 10 6 75 0 0 9| 0 0 | 2.7 1.9 1.7|5726M 772M 8706M 859M| 10M 11M| 4 0 0|1124M 11G| 11k 101k 9 7 76 0 0 7| 0 108k| 2.5 1.8 1.7|5720M 772M 8706M 865M| 10M 11M| 5 0 0|1124M 11G| 11k 101k
相关推荐
《ice-dubbo-thrift-grpc性能测试对比》 在IT领域,选择合适的RPC(远程过程调用)框架对于系统的性能和可扩展性至关重要。本文主要分析了四种常见的RPC框架——ice、dubbo、thrift和grpc的性能表现,通过一组简化...
这个名为"protobuf/thrift/avro-序列化性能测试工程"的项目专注于对比这三种技术的性能。 protobuf是Google开发的一种高效的数据序列化协议,它提供了简洁、快速和跨平台的序列化方法。protobuf通过定义.proto文件...
服务端测试可能涉及并发处理能力、异常处理、性能测试等方面;客户端测试则关注调用的准确性、网络延迟、错误处理等。此外,测试过程中还会关注Thrift的序列化和反序列化效率,以及跨语言通信的兼容性。 总之,...
- 调试:在开发和测试环境中,使用Wireshark抓取Thrift流量可以帮助定位接口调用的问题,如序列化错误、网络通信问题等。 - 监控:在生产环境中,定期抓取Thrift流量可监控服务的健康状况,及时发现潜在的性能瓶颈...
在Linux环境下安装和测试Thrift是一项技术性较强的工作,Thrift是一种开源的跨语言服务开发框架,它允许程序员定义服务接口和服务数据类型,然后自动生成客户端和服务器端的代码,以便于不同编程语言之间进行高效、...
在IT行业中,Thrift是一种高性能、可扩展的跨语言服务开发框架,由Facebook开源。它允许定义数据类型和服务接口,然后自动生成各种编程语言的代码,使得不同语言之间可以进行高效的数据交换和通信。本篇文章将围绕...
Thrift是Facebook开源的一款高性能、跨语言的服务框架,它的设计目标是高效地在不同编程语言之间进行通信。本文将基于Thrift的Java实现,总结学习过程中的一些关键知识点,旨在帮助理解Thrift的工作原理以及如何在...
而 Thrift 是一个跨语言的服务框架,它提供了编译器和运行时库,可以方便地创建高性能、可扩展的服务。 【描述】"供大家使用" 表明这个 demo 是为了提供给开发者们参考和学习,帮助他们理解如何在自己的项目中运用 ...
通过对Thrift阻塞和非阻塞模式的测试,我们可以得出适合特定业务场景的最佳实践,优化服务性能,提高系统的整体效率。在实际应用中,可能需要结合具体情况,选择单线程阻塞、多线程阻塞、异步IO、NIO或AIO等模式的...
Mock数据通常用于测试目的,它模拟了实际数据的行为,但不依赖于真实环境或数据库,使得开发者可以在没有真实数据的情况下进行功能验证和性能测试。 首先,让我们深入理解`.thrift`文件。这是一种接口定义语言(IDL...
8. **测试与调试**:在生产环境中使用Thrift SASL时,进行充分的测试和调试是必要的,以确保所有身份验证和加密功能按预期工作。 总之,Thrift SASL 0.3.0 提供了一种强大且灵活的方式来增强Thrift服务的安全性,...
**VS2017_Hbase thrift C++接口测试** 在这个项目中,我们主要探讨如何在Visual Studio 2017(VS2017)环境下,利用C++语言通过Thrift库来与HBase数据库进行交互。Thrift是一种跨语言的服务开发框架,它允许我们...
Thrift-0.10.0是这个样例中使用的版本,它支持C++、Java、Python等多种语言,并且具有良好的性能和稳定性。 Boost是一个流行的C++库集合,提供了许多用于提高C++效率和功能的工具。在这个样例中,Boost可能被用来...
Thrift通过定义一种中间表示(IDL,Interface Definition Language)来描述服务接口,然后自动生成相应的客户端和服务器端代码,使得开发者可以轻松地在多种语言之间进行数据交换和服务调用。 **1. Thrift IDL** ...
Thrift是一种高性能、跨语言的服务框架,由Facebook开发并开源,其主要目的是解决大规模分布式系统中的数据通信问题。本项目“一个Thrift的学习测试项目”是针对Thrift技术的一个实践应用,通过它我们可以深入理解...
Thrift 的优势在于它的性能和可移植性。由于生成的代码是原生的,因此通信效率高;而跨语言特性则使得不同系统间的服务调用变得简单。此外,Thrift 支持多种传输方式(如 HTTP、TCP)和序列化协议(如 Binary、JSON...
Thrift 提供的工具可以帮助开发者调试接口调用,检查序列化数据,以及跟踪性能瓶颈。 总的来说,这个例子展示了如何使用 Thrift 构建一个简单的跨语言服务,其中 Python 作为服务提供者,PHP 作为服务消费者。这个...
Thrift 0.9.2 是 Facebook 开源的一款高效、跨语言...- 测试用例:用于验证 Thrift 的功能和性能。 通过这个压缩包,你可以开始学习和使用 Thrift 来构建自己的跨语言服务,体验其强大的序列化能力和高效的通信性能。
Thrift 是一个开源的跨语言服务开发框架,由Facebook于2007年设计并开源,后来成为Apache软件...在实际项目中,我们可以结合这个压缩包来学习如何设置Thrift服务,编写客户端和服务器端代码,以及如何进行通信测试。
Apache Thrift是由Facebook开发并开源的远程服务调用框架,它能够实现...总之,Thrift作为一款性能优良、支持多语言的RPC框架,能够有效地解决分布式系统中服务调用的问题,适合构建复杂、高并发、大数据量的后端服务。