[發明專利]一種基于多核心CPU的信令采集方法有效
| 申請號: | 201710533717.6 | 申請日: | 2017-07-03 |
| 公開(公告)號: | CN107479966B | 公開(公告)日: | 2020-11-03 |
| 發明(設計)人: | 張劍華;宋青;王國升;張建軍;李振華 | 申請(專利權)人: | 珠海高凌信息科技股份有限公司 |
| 主分類號: | G06F9/50 | 分類號: | G06F9/50;H04L12/26 |
| 代理公司: | 廣州嘉權專利商標事務所有限公司 44205 | 代理人: | 俞梁清 |
| 地址: | 519060 廣東省*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 多核 cpu 采集 方法 | ||
本發明公開了一種基于多核心CPU的信令采集方法,所述方法包括如下步驟:主線程獲取當前CPU的核心數;主線程創建Master線程,用于偵聽來自網絡的TCP連接;主線程根據當前CPU核心數的數量創建多個Worker線程,并對每個Worker線程進行編號獲得不同的Worker ID,所述Worker線程用于接收并處理信令數據;Master線程對偵聽到的新連接進行分析,并根據新連接的類型將需要處理的信令數據發送給相應Worker ID的Worker線程進行處理。本發明解決了CPU多核心利用的問題,且每個Worker單線程都可以處理大量的信令采集設備的連接。
技術領域
本發明屬于通信領域,尤其涉及一種基于多核心CPU的信令采集方法。
背景技術
為了進行信令數據分析,比如說要統計時間端話務峰值、統計各通信線路忙閑占用情況、分析話務地區分布等等,需要將通信線路上的信令數據歸集到一臺服務器上然后進行處理,如分析、入庫等等,以下將這臺負責歸集信令的服務器稱為采集服務器或信令采集設備。負責在通信鏈路上截獲信令的是專用設備,該設備以TCP Client長連接的方式連接到采集服務器上,并向其上傳信令數據。依照處理容量及地區分布,截獲信令的設備會有較多的數量。現有的采集服務器的實現方法有兩種:一種是基于多線程的思路,即對于每個TCP Client的連接,采集服務器都會創建一個獨立的線程為其進行數據接收,但是這種線程切換是有代價的,其不適合客戶端較多(1000以上)的場景;另一種是基于epoll的異步Socket通信技術,其在服務器啟動時會啟動一個epoll線程負責偵聽并讀取連接上來的客戶端,該技術可并發處理的連接數量非常多,但是由于其是單線程的工作模式,不能充分利用現代多核CPU的性能。
發明內容
為了解決以上問題,本發明的目的在于提供一種既能接受大量信令采集設備的連接,又能充分利用多核心CPU性能的信令采集方案。
本發明解決其問題所采用的技術方案是:
一種基于多核心CPU的信令采集方法,所述方法包括如下步驟:
主線程獲取當前CPU的核心數;
主線程創建Master線程,用于偵聽來自網絡的TCP連接;
主線程根據當前CPU核心數的數量創建多個Worker線程,并對每個Worker線程進行編號獲得不同的Worker ID,所述Worker線程用于接收并處理信令數據;
Master線程對偵聽到的新連接進行分析,并根據新連接的類型將需要處理的信令數據發送給相應Worker ID的Worker線程進行處理。
作為本發明上述技術方案的可選方案,所述主線程創建Worker線程的數量為CPU核心數數量的兩倍。
作為本發明上述技術方案的可選方案,對每個Worker線程進行編號的方式為:按照創建的先后,從0開始遞增,為Worker線程進行編號。
作為本發明上述技術方案的可選方案,所述Master線程對偵聽到的新連接進行分析包括:判斷該新連接是來自信令采集設備還是Worker線程,并根據判斷的結果將新連接分為兩個不同的類型。
作為本發明上述技術方案的進一步改進,若Master線程判斷偵聽到的新連接是來自信令采集設備,則執行如下步驟:
分配出下一個處理信令數據的Worker ID;
通過上述Worker ID找到對應的Worker TCP連接;
接受由新連接發送來的接口,并將接口值通過Worker TCP連接發送給Worker線程;
Master線程繼續偵聽來自網絡的TCP連接。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于珠海高凌信息科技股份有限公司,未經珠海高凌信息科技股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710533717.6/2.html,轉載請聲明來源鉆瓜專利網。





