From 67572ef05dde5485d3cd3ce90fa9d9fb74774278 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Sat, 4 Jul 2020 22:11:33 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84master=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/masterserver/cachemgr.cc | 5 +++++ server/masterserver/cachemgr.h | 1 + server/masterserver/perfmonitor.cc | 13 +++++++++++-- server/masterserver/perfmonitor.h | 3 +++ server/masterserver/svrmgr.cc | 5 +++++ server/masterserver/svrmgr.h | 1 + 6 files changed, 26 insertions(+), 2 deletions(-) diff --git a/server/masterserver/cachemgr.cc b/server/masterserver/cachemgr.cc index a3c41fc..3266209 100644 --- a/server/masterserver/cachemgr.cc +++ b/server/masterserver/cachemgr.cc @@ -105,6 +105,11 @@ Friend* CacheMgr::GetFriendData(const std::string& account_id) return itr != friend_hash_.end() ? itr->second : nullptr; } +size_t CacheMgr::GetCacheFriendNum() +{ + return friend_hash_.size(); +} + void CacheMgr::RemoveTimeoutFriend() { if (friend_hash_.size() < 10000 * 50) { diff --git a/server/masterserver/cachemgr.h b/server/masterserver/cachemgr.h index 70b9144..84e9b45 100644 --- a/server/masterserver/cachemgr.h +++ b/server/masterserver/cachemgr.h @@ -25,6 +25,7 @@ class CacheMgr : public a8::Singleton void _SS_IM_PullUserList(f8::MsgHdr& hdr, const ss::SS_IM_PullUserList& msg); Friend* GetFriendData(const std::string& account_id); + size_t GetCacheFriendNum(); private: void RemoveTimeoutFriend(); diff --git a/server/masterserver/perfmonitor.cc b/server/masterserver/perfmonitor.cc index a4819bf..2c2d216 100644 --- a/server/masterserver/perfmonitor.cc +++ b/server/masterserver/perfmonitor.cc @@ -5,19 +5,28 @@ #include "perfmonitor.h" #include "app.h" +#include "cachemgr.h" +#include "svrmgr.h" static void SavePerfLog() { a8::UdpLog::Instance()->Info ("max_run_delay_time:%d max_timer_idle:%d " - "in_data_size:%d out_data_size:%d msgnode_size:%d read_count:%d ", + "in_data_size:%d out_data_size:%d msgnode_size:%d read_count:%d " + "cache_friend_num:%d alloc_node_total_times:%d alloc_node_ok_times:%d " + "alloc_node_fail_times:%d node_num:%d " , { PerfMonitor::Instance()->max_run_delay_time, PerfMonitor::Instance()->max_timer_idle, PerfMonitor::Instance()->in_data_size, PerfMonitor::Instance()->out_data_size, App::Instance()->msgnode_size_, - PerfMonitor::Instance()->read_count + PerfMonitor::Instance()->read_count, + CacheMgr::Instance()->GetCacheFriendNum(), + PerfMonitor::Instance()->alloc_node_total_times, + PerfMonitor::Instance()->alloc_node_ok_times, + PerfMonitor::Instance()->alloc_node_fail_times, + SvrMgr::Instance()->GetNodeNum() }); a8::UdpLog::Instance()->Info ("run_times:%d timer_times:%d event_times:%d free_times:%d " diff --git a/server/masterserver/perfmonitor.h b/server/masterserver/perfmonitor.h index 5e3a611..8c537e5 100644 --- a/server/masterserver/perfmonitor.h +++ b/server/masterserver/perfmonitor.h @@ -13,6 +13,9 @@ class PerfMonitor : public a8::Singleton long long out_data_size = 0; long long in_data_size = 0; long long read_count = 0; + long long alloc_node_total_times = 0; + long long alloc_node_ok_times = 0; + long long alloc_node_fail_times = 0; void Init(); void UnInit(); diff --git a/server/masterserver/svrmgr.cc b/server/masterserver/svrmgr.cc index a5768b5..b9f54be 100644 --- a/server/masterserver/svrmgr.cc +++ b/server/masterserver/svrmgr.cc @@ -185,6 +185,11 @@ void SvrMgr::OnIMServerDisconnect(a8::XParams& param) } } +size_t SvrMgr::GetNodeNum() +{ + return node_key_hash_.size(); +} + SvrNode* SvrMgr::AllocNode(const std::string& account_id) { Friend* friend_data = CacheMgr::Instance()->GetFriendData(account_id); diff --git a/server/masterserver/svrmgr.h b/server/masterserver/svrmgr.h index 46761ca..8d7dd5e 100644 --- a/server/masterserver/svrmgr.h +++ b/server/masterserver/svrmgr.h @@ -44,6 +44,7 @@ class SvrMgr : public a8::Singleton SvrNode* GetNodeBySocket(int socket_handle); void OnIMServerDisconnect(a8::XParams& param); + size_t GetNodeNum(); private: SvrNode* AllocNode(const std::string& account_id);