Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
2dot5
ClickHouse
提交
07dcf40a
C
ClickHouse
项目概览
2dot5
/
ClickHouse
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
ClickHouse
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
07dcf40a
编写于
4月 22, 2020
作者:
A
Alexey Milovidov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Simple server wide memory profiler
上级
91fe5096
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
18 addition
and
2 deletion
+18
-2
programs/server/Server.cpp
programs/server/Server.cpp
+11
-1
programs/server/config.xml
programs/server/config.xml
+6
-0
src/Common/TraceCollector.cpp
src/Common/TraceCollector.cpp
+1
-1
未找到文件。
programs/server/Server.cpp
浏览文件 @
07dcf40a
...
...
@@ -617,9 +617,19 @@ int Server::main(const std::vector<std::string> & /*args*/)
/// Look at compiler-rt/lib/sanitizer_common/sanitizer_stacktrace.h
///
#if USE_UNWIND && !WITH_COVERAGE && !defined(SANITIZER)
///
QueryProfiler
cannot work reliably with any other libunwind or without PHDR cache.
///
Profilers
cannot work reliably with any other libunwind or without PHDR cache.
if
(
hasPHDRCache
())
{
global_context
->
initializeTraceCollector
();
/// Set up server-wide memory profiler (for total memory tracker).
UInt64
total_memory_profiler_step
=
config
().
getUInt64
(
"total_memory_profiler_step"
,
0
);
if
(
total_memory_profiler_step
)
{
total_memory_tracker
.
setOrRaiseProfilerLimit
(
total_memory_profiler_step
);
total_memory_tracker
.
setProfilerStep
(
total_memory_profiler_step
);
}
}
#endif
/// Describe multiple reasons when query profiler cannot work.
...
...
programs/server/config.xml
浏览文件 @
07dcf40a
...
...
@@ -107,6 +107,12 @@
-->
<max_server_memory_usage_to_ram_ratio>
0.9
</max_server_memory_usage_to_ram_ratio>
<!-- Simple server-wide memory profiler. Collect a stack trace at every peak allocation step (in bytes).
Data will be stored in system.trace_log table with query_id = empty string.
Zero means disabled. Minimal effective value is 4 MiB.
-->
<total_memory_profiler_step>
4194304
</total_memory_profiler_step>
<!-- Set limit on number of open files (default: maximum). This setting makes sense on Mac OS X because getrlimit() fails to retrieve
correct maximum value. -->
<!-- <max_open_files>262144</max_open_files> -->
...
...
src/Common/TraceCollector.cpp
浏览文件 @
07dcf40a
...
...
@@ -65,7 +65,7 @@ void TraceCollector::collect(TraceType trace_type, const StackTrace & stack_trac
sizeof
(
StackTrace
::
Frames
)
+
// collected stack trace, maximum capacity
sizeof
(
TraceType
)
+
// trace type
sizeof
(
UInt64
)
+
// thread_id
sizeof
(
UInt64
);
// size
sizeof
(
UInt64
);
// size
char
buffer
[
buf_size
];
WriteBufferFromFileDescriptorDiscardOnFailure
out
(
pipe
.
fds_rw
[
1
],
buf_size
,
buffer
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录