Skip to content

Commit 579f533

Browse files
committed
Update test
Signed-off-by: JaySon-Huang <[email protected]>
1 parent c1cafc5 commit 579f533

File tree

2 files changed

+9
-65
lines changed

2 files changed

+9
-65
lines changed

dbms/src/Common/CurrentMetrics.cpp

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,10 +95,7 @@
9595
M(ConnectionPoolSize) \
9696
M(MemoryTrackingQueryStorageTask) \
9797
M(MemoryTrackingFetchPages) \
98-
M(MemoryTrackingSharedColumnData) \
99-
M(NumSegments) \
100-
M(NumDeltaCache) \
101-
M(BytesDeltaCache)
98+
M(MemoryTrackingSharedColumnData)
10299

103100
namespace CurrentMetrics
104101
{

dbms/src/Storages/DeltaMerge/tests/gtest_segment.cpp

Lines changed: 8 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
#include <Common/CurrentMetrics.h>
1616
#include <Common/FailPoint.h>
1717
#include <Common/Logger.h>
18+
#include <Common/MemoryAllocTrace.h>
1819
#include <Common/PODArray.h>
1920
#include <Common/SyncPoint/Ctl.h>
2021
#include <DataStreams/OneBlockInputStream.h>
@@ -607,59 +608,11 @@ try
607608
}
608609
CATCH
609610

610-
611-
namespace
612-
{
613-
struct ProcessMemoryUsage
614-
{
615-
double resident_mb;
616-
Int64 cur_proc_num_threads;
617-
double cur_virt_mb;
618-
};
619-
620-
bool process_mem_usage(double & resident_set, Int64 & cur_proc_num_threads, UInt64 & cur_virt_size)
611+
double get_process_resident_mb()
621612
{
622-
resident_set = 0.0;
623-
624-
// 'file' stat seems to give the most reliable results
625-
std::ifstream stat_stream("/proc/self/stat", std::ios_base::in);
626-
// if "/proc/self/stat" is not supported
627-
if (!stat_stream.is_open())
628-
return false;
629-
630-
// dummy vars for leading entries in stat that we don't care about
631-
std::string pid, comm, state, ppid, pgrp, session, tty_nr;
632-
std::string tpgid, flags, minflt, cminflt, majflt, cmajflt;
633-
std::string utime, stime, cutime, cstime, priority, nice;
634-
std::string itrealvalue, starttime;
635-
636-
// the field we want
637-
Int64 rss;
638-
639-
stat_stream >> pid >> comm >> state >> ppid >> pgrp >> session >> tty_nr >> tpgid >> flags >> minflt >> cminflt
640-
>> majflt >> cmajflt >> utime >> stime >> cutime >> cstime >> priority >> nice >> cur_proc_num_threads
641-
>> itrealvalue >> starttime >> cur_virt_size >> rss; // don't care about the rest
642-
643-
stat_stream.close();
644-
645-
Int64 page_size_kb = sysconf(_SC_PAGE_SIZE) / 1024; // in case x86-64 is configured to use 2MB pages
646-
resident_set = rss * page_size_kb;
647-
return true;
613+
auto mu = DB::get_process_mem_usage();
614+
return mu.resident_bytes / 1024.0 / 1024;
648615
}
649-
ProcessMemoryUsage get_process_mem_usage()
650-
{
651-
double resident_set;
652-
Int64 cur_proc_num_threads = 1;
653-
UInt64 cur_virt_size = 0;
654-
process_mem_usage(resident_set, cur_proc_num_threads, cur_virt_size);
655-
resident_set *= 1024; // unit: byte
656-
return ProcessMemoryUsage{
657-
resident_set / 1024.0 / 1024,
658-
cur_proc_num_threads,
659-
cur_virt_size / 1024.0 / 1024,
660-
};
661-
}
662-
} // namespace
663616

664617
TEST_F(SegmentOperationTest, TestMassiveSegment)
665618
try
@@ -685,21 +638,17 @@ try
685638
next_split_seg_id = *n_seg_id;
686639
if (i % progress_interval == 0)
687640
{
688-
auto mu = get_process_mem_usage();
689641
LOG_INFO(
690642
log,
691643
"lvl={} round={} split_point={} next_seg_id={} mem_resident_set={:.3f}MB)",
692644
lvl,
693645
i,
694646
split_point,
695647
*n_seg_id,
696-
mu.resident_mb);
648+
get_process_resident_mb());
697649
}
698650
}
699-
{
700-
auto mu = get_process_mem_usage();
701-
LOG_INFO(log, "lvl={} round={} mem_resident_set={:.3f}MB", lvl, num_expected_segs, mu.resident_mb);
702-
}
651+
LOG_INFO(log, "lvl={} round={} mem_resident_set={:.3f}MB", lvl, num_expected_segs, get_process_resident_mb());
703652

704653
size_t round = 0;
705654
for (auto && [seg_id, seg] : segments)
@@ -715,14 +664,13 @@ try
715664
size_t write_rows_sub = 2;
716665
if (round % progress_interval == 0)
717666
{
718-
auto mu = get_process_mem_usage();
719667
LOG_INFO(
720668
log,
721669
"lvl={} round={} written_rows={} mem_resident_set={:.3f}MB",
722670
lvl,
723671
round,
724672
write_rows * round,
725-
mu.resident_mb);
673+
get_process_resident_mb());
726674
}
727675
for (size_t k = 0; k < 2; ++k)
728676
{
@@ -746,13 +694,12 @@ try
746694
round++;
747695
}
748696
{
749-
auto mu = get_process_mem_usage();
750697
LOG_INFO(
751698
log,
752699
"TestMassiveSegment done, segments.size()={} lvl={} mem_resident_set={:.3f}MB",
753700
segments.size(),
754701
lvl,
755-
mu.resident_mb);
702+
get_process_resident_mb());
756703
}
757704
}
758705
}

0 commit comments

Comments
 (0)