CN104301253A - 线程池和共享池组合优化大负荷通讯服务器 - Google Patents
线程池和共享池组合优化大负荷通讯服务器 Download PDFInfo
- Publication number
- CN104301253A CN104301253A CN201410561346.9A CN201410561346A CN104301253A CN 104301253 A CN104301253 A CN 104301253A CN 201410561346 A CN201410561346 A CN 201410561346A CN 104301253 A CN104301253 A CN 104301253A
- Authority
- CN
- China
- Prior art keywords
- thread
- pool
- buffer queue
- data
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供一种线程池和共享池组合优化大负荷通讯服务器的方法。GPS监控平台上有成千上万台监控终端,它们不停的向监控中心发送数据报文。由于报文的数量庞大,同时还需要解析,给通讯服务器带来了很大的压力。本发明的基于线程池和共享池组合优化方法主要用于当服务器连接成千上万的GPS客户端时,需要对上报数据及时解析入库的情况。为服务器的稳定、及时响应提供了一种高效的处理方法。
Description
技术领域
本发明属于信息技术领域通讯服务器的一个优化方案,是一种利用线程池技术和共享池技术组合,大大提高通讯服务器性能的有效方法。
背景技术
GPS监控平台上有成千上万台监控终端,它们不停的向监控中心发送数据报文。由于报文的数量庞大,同时还需要解析,给通讯服务器带来了很大的压力。在使用过程中暴露出一些问题,主要体现在以下几点:
1、往往由于通讯服务器不能及时响应,而造成上报数据丢失;
2、上报数据量太大,造成服务器假死机;
3、服务器处理速度跟不上客户端的上报速度,造成大量上报数据挤压,不能及时入库。
目前解决此类问题的方法主要有:
1、 增加硬件配置,采用高性能服务器,可以在一定程度上解决问题。
2、 采用分布式服务器,把监控平台划成几个区域,每个区域有专门的服务器,每个区域的客户端只要上报到区域服务器即可,然后区域服务器处理完成后统一入到一个后台数据库中。
这些方法都能在一定程度上解决服务器的负荷问题,但是需要增加额外的投入,硬件的巨大开支使得GPS平台的运营举步维艰。
发明内容
本发明的目的是提供一种基于线程池和共享池组合的优化技术,在不增加任何硬件成本的前提下,极大的提高服务器的效率。
所述方法包括如下步骤:
1、服务器初始化缓冲队列,绑定端口开始监听;
2、接收客户端数据,放入缓冲队列;
3、根据缓冲队列的记录数,计算出需要的线程数,所有线程通过线程池管理;
4、线程读取缓冲队列数据,到共享池中搜索历史解析语句,如果没有找到,就开始解析并把解析结果放到共享池中,以备下次直接使用;
5、根据解析的结果形成数据库入库指令;
6、进行入库操作,完成后线程退出。
本发明相对于现有技术的创新点是:
1、从客户端接收的数据不是直接解析,而是先放入缓冲队列,避免了大规模数据浪涌时造成的服务器宕机;
2、利用线程池来处理缓冲队列的数据,可以有效管理所有线程的活动,避免了线程僵死;
3、利用共享池存放解析过的指令,避免了指令的重复解析,提高了解析效率。
附图说明
图1 是服务器初始化接收数据流程图;
图2 是利用线程池管理线程流程图;
图3 是线程池和共享池优化解析数据流程。
具体实施方式
结合附图给出本发明的一个具体实施例。
本发明的基于线程池和共享池组合优化方法主要用于当服务器连接成千上万的GPS客户端时,需要对上报数据及时解析入库的情况。为服务器的稳定、及时响应提供了一种高效的处理方法。
为了实现该优化方法,首先需要初始化连接缓冲队列,从客户端接收的数据不是直接解析,而是先放入缓冲队列,避免了大规模数据浪涌时造成的服务器宕机。对数据的处理采用异步多线程方式,所有线程通过线程池统一管理。线程对数据解析时,首先在共享池中查找是否解析过该指令,如果有则直接使用解析结果,没有则进行解析并把结果存到共享池中,避免了以后的重复解析。
具体流程如下:
1、在步骤101中,服务器进行初始化工作,包括缓冲队列、线程池和共享池;
2、在步骤102中,绑定主机端口进行监听;
3、在步骤103中,接收客户端发送的数据;
4、在步骤104中,将接收的数推入缓冲队列,继续接收新的数据;
5、在步骤201中, 获取缓冲队列记录数,按每个线程解析50条指令计算,根据记录数,计算需要的线程数;
6、在步骤202中,如果线程数过少,则自动创建新线程;
8、在步骤301中,定时器触发,线程从缓冲队列获取数据;
9、在步骤302中,线程在共享池中查找,如果查到,则直接获取结果,如果没有找到,则进行解析,同时将解析后的数据写到共享池中;
10、在步骤303中,根据解析的结果,形成入库指令;
11、在步骤304中,执行入库指令,写入数据库;
12、在步骤305中,将线程解析计数加1,并判断解析数是否达到50个,达到了就自动终止,没有达到就在下一个时钟周期继续从缓冲队列读取数据进行处理。
Claims (3)
1.本发明的目的是提供一种基于线程池和共享池组合的优化技术,在不增加任何硬件成本的前提下,极大的提高服务器的效率。
2.所述方法包括如下步骤:
1)、服务器初始化缓冲队列,绑定端口开始监听;
2)、接收客户端数据,放入缓冲队列;
3)、根据缓冲队列的记录数,计算出需要的线程数,所有线程通过线程池管理;
4)、线程读取缓冲队列数据,到共享池中搜索历史解析语句,如果没有找到,就开始解析并把解析结果放到共享池中,以备下次直接使用;
5)、根据解析的结果形成数据库入库指令;
6)、进行入库操作,完成后线程退出。
3.本发明相对于现有技术的创新点是:
1)、从客户端接收的数据不是直接解析,而是先放入缓冲队列,避免了大规模数据浪涌时造成的服务器宕机;
2)、利用线程池来处理缓冲队列的数据,可以有效管理所有线程的活动,避免了线程僵死;
3)、利用共享池存放解析过的指令,避免了指令的重复解析,提高了解析效率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410561346.9A CN104301253A (zh) | 2014-10-21 | 2014-10-21 | 线程池和共享池组合优化大负荷通讯服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410561346.9A CN104301253A (zh) | 2014-10-21 | 2014-10-21 | 线程池和共享池组合优化大负荷通讯服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104301253A true CN104301253A (zh) | 2015-01-21 |
Family
ID=52320825
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410561346.9A Pending CN104301253A (zh) | 2014-10-21 | 2014-10-21 | 线程池和共享池组合优化大负荷通讯服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104301253A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1881176A (zh) * | 2005-06-16 | 2006-12-20 | 国际商业机器公司 | 用于阻塞线程的方法与装置 |
CN101087210A (zh) * | 2007-05-22 | 2007-12-12 | 网御神州科技(北京)有限公司 | 高性能的Syslog日志处理和存储方法 |
CN102282540A (zh) * | 2008-12-17 | 2011-12-14 | 超威半导体公司 | 带有共享指令流的协处理器单元 |
CN103399856A (zh) * | 2013-07-01 | 2013-11-20 | 北京科东电力控制系统有限责任公司 | 面向scada系统的爆发式数据缓存处理系统及其方法 |
US20140176572A1 (en) * | 2012-12-21 | 2014-06-26 | Balaji Vembu | Offloading Touch Processing To A Graphics Processor |
-
2014
- 2014-10-21 CN CN201410561346.9A patent/CN104301253A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1881176A (zh) * | 2005-06-16 | 2006-12-20 | 国际商业机器公司 | 用于阻塞线程的方法与装置 |
CN101087210A (zh) * | 2007-05-22 | 2007-12-12 | 网御神州科技(北京)有限公司 | 高性能的Syslog日志处理和存储方法 |
CN102282540A (zh) * | 2008-12-17 | 2011-12-14 | 超威半导体公司 | 带有共享指令流的协处理器单元 |
US20140176572A1 (en) * | 2012-12-21 | 2014-06-26 | Balaji Vembu | Offloading Touch Processing To A Graphics Processor |
CN103399856A (zh) * | 2013-07-01 | 2013-11-20 | 北京科东电力控制系统有限责任公司 | 面向scada系统的爆发式数据缓存处理系统及其方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112612675B (zh) | 微服务架构下的分布式大数据日志链路跟踪方法及系统 | |
CN110351150B (zh) | 故障根源确定方法及装置、电子设备和可读存储介质 | |
US10650016B2 (en) | Data ingestion process | |
CN105608758B (zh) | 一种基于算法组态和分布式流计算的大数据分析平台装置及方法 | |
CN103389715B (zh) | 一种高性能的分布式数据中心监控架构 | |
CN105793822B (zh) | 动态混洗重新配置 | |
CN105207806A (zh) | 分布式服务的监控方法及装置 | |
CN109710731A (zh) | 一种基于Flink的数据流多向处理系统 | |
US20220261392A1 (en) | Persistent Shuffle System | |
WO2017114152A1 (zh) | 一种业务拨测方法、装置以及系统 | |
CN105357061A (zh) | 一种基于大数据流处理技术的运维监控分析系统 | |
Küçükkeçeci et al. | Big data model simulation on a graph database for surveillance in wireless multimedia sensor networks | |
US20150081914A1 (en) | Allocation of Resources Between Web Services in a Composite Service | |
US20190310985A1 (en) | Data arrangement management in a distributed data cluster environment of a shared pool of configurable computing resources | |
CN106210124B (zh) | 一种统一的云数据中心监控系统 | |
CN102135932A (zh) | 一种监控系统及监控方法 | |
CN105516266A (zh) | 一种业务监控方法、系统及相关设备 | |
CN104391705A (zh) | 一种应用于高可用集群软件的分布式自动化测试框架 | |
CN103117878A (zh) | 一种基于Nagios的分布式监控系统的设计方法 | |
CN105260452A (zh) | 离线日志收集查询和分析系统及方法 | |
CN111181800A (zh) | 测试数据处理方法、装置、电子设备及存储介质 | |
CN102647302A (zh) | 一种针对集群节点网络及端口的监控与管理方法 | |
CN112559280A (zh) | 基于数据中台的数据全链路监控方法 | |
CN104881475A (zh) | 一种用于大数据随机抽样的方法和系统 | |
EP3440569A1 (en) | System for fully integrated capture, and analysis of business information resulting in predictive decision making and simulation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150121 |