Optimize packet I/O and timeouts
- Introduce per-thread I/O statistics for packet I/O to reduce performance overhead. - Implement packet_io_yield() for better thread management during I/O operations. - Refactor time wheel management: - Replace timeouts-based cron tasks with (now_ts - last_ts > timeout) for scheduled tasks. - Update the time wheel every 5 ms for improved time management.
This commit is contained in:
@@ -116,8 +116,7 @@ TEST(TCP_OPENING_TO_CLOSING, BY_FIN_FIN)
|
||||
session_print(sess);
|
||||
|
||||
// check stat
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
stat = session_manager_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
@@ -134,8 +133,7 @@ TEST(TCP_OPENING_TO_CLOSING, BY_FIN_FIN)
|
||||
session_manager_free_session(mgr, sess);
|
||||
|
||||
// check stat
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
stat = session_manager_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
@@ -212,8 +210,7 @@ TEST(TCP_OPENING_TO_CLOSING, BY_C2S_RST)
|
||||
session_print(sess);
|
||||
|
||||
// check stat
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
stat = session_manager_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
@@ -230,8 +227,7 @@ TEST(TCP_OPENING_TO_CLOSING, BY_C2S_RST)
|
||||
session_manager_free_session(mgr, sess);
|
||||
|
||||
// check stat
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
stat = session_manager_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
@@ -308,8 +304,7 @@ TEST(TCP_OPENING_TO_CLOSING, BY_S2C_RST)
|
||||
session_print(sess);
|
||||
|
||||
// check stat
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
stat = session_manager_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
@@ -326,8 +321,7 @@ TEST(TCP_OPENING_TO_CLOSING, BY_S2C_RST)
|
||||
session_manager_free_session(mgr, sess);
|
||||
|
||||
// check stat
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
stat = session_manager_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
@@ -365,8 +359,7 @@ TEST(TCP_OPENING_TO_CLOSING, BY_INIT_TIMEOUT)
|
||||
EXPECT_TRUE(sess);
|
||||
|
||||
// check stat
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
stat = session_manager_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 1);
|
||||
@@ -384,8 +377,7 @@ TEST(TCP_OPENING_TO_CLOSING, BY_INIT_TIMEOUT)
|
||||
session_manager_free_session(mgr, sess);
|
||||
|
||||
// check stat
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
stat = session_manager_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
@@ -455,8 +447,7 @@ TEST(TCP_OPENING_TO_CLOSING, BY_HANDSHAKE_TIMEOUT)
|
||||
session_print(sess);
|
||||
|
||||
// check stat
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
stat = session_manager_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 1);
|
||||
@@ -474,8 +465,7 @@ TEST(TCP_OPENING_TO_CLOSING, BY_HANDSHAKE_TIMEOUT)
|
||||
session_manager_free_session(mgr, sess);
|
||||
|
||||
// check stat
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
stat = session_manager_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
@@ -556,8 +546,7 @@ TEST(TCP_OPENING_TO_CLOSING, BY_DATA_TIMEOUT)
|
||||
session_print(sess);
|
||||
|
||||
// check stat
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
stat = session_manager_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 1);
|
||||
@@ -575,8 +564,7 @@ TEST(TCP_OPENING_TO_CLOSING, BY_DATA_TIMEOUT)
|
||||
session_manager_free_session(mgr, sess);
|
||||
|
||||
// check stat
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
stat = session_manager_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
@@ -646,8 +634,7 @@ TEST(TCP_OPENING_TO_CLOSING, BY_C2S_HALF_FIN)
|
||||
session_print(sess);
|
||||
|
||||
// check stat
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
stat = session_manager_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
@@ -664,8 +651,7 @@ TEST(TCP_OPENING_TO_CLOSING, BY_C2S_HALF_FIN)
|
||||
session_manager_free_session(mgr, sess);
|
||||
|
||||
// check stat
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
stat = session_manager_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
@@ -735,8 +721,7 @@ TEST(TCP_OPENING_TO_CLOSING, BY_S2C_HALF_FIN)
|
||||
session_print(sess);
|
||||
|
||||
// check stat
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
stat = session_manager_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 1);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
@@ -753,8 +738,7 @@ TEST(TCP_OPENING_TO_CLOSING, BY_S2C_HALF_FIN)
|
||||
session_manager_free_session(mgr, sess);
|
||||
|
||||
// check stat
|
||||
session_manager_print_stat(mgr);
|
||||
stat = session_manager_get_stat(mgr);
|
||||
stat = session_manager_stat(mgr);
|
||||
EXPECT_TRUE(stat);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_used == 0);
|
||||
EXPECT_TRUE(stat->nr_tcp_sess_opening == 0);
|
||||
|
||||
Reference in New Issue
Block a user