Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
d9072005
T
TDengine
项目概览
taosdata
/
TDengine
大约 2 年 前同步成功
通知
1192
Star
22018
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
d9072005
编写于
3月 03, 2022
作者:
S
Shengliang Guan
提交者:
GitHub
3月 03, 2022
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #10531 from taosdata/feature/config
monitor
上级
405e9e2c
2bf46ddc
变更
15
隐藏空白更改
内联
并排
Showing
15 changed file
with
298 addition
and
257 deletion
+298
-257
include/libs/monitor/monitor.h
include/libs/monitor/monitor.h
+9
-9
include/libs/tfs/tfs.h
include/libs/tfs/tfs.h
+9
-0
include/os/osEnv.h
include/os/osEnv.h
+3
-3
include/os/osSysinfo.h
include/os/osSysinfo.h
+12
-12
source/common/src/tglobal.c
source/common/src/tglobal.c
+3
-7
source/dnode/mgmt/impl/inc/dndEnv.h
source/dnode/mgmt/impl/inc/dndEnv.h
+2
-3
source/dnode/mgmt/impl/inc/dndMnode.h
source/dnode/mgmt/impl/inc/dndMnode.h
+1
-0
source/dnode/mgmt/impl/src/dndEnv.c
source/dnode/mgmt/impl/src/dndEnv.c
+8
-1
source/dnode/mgmt/impl/src/dndMgmt.c
source/dnode/mgmt/impl/src/dndMgmt.c
+38
-10
source/dnode/mgmt/impl/src/dndMnode.c
source/dnode/mgmt/impl/src/dndMnode.c
+7
-0
source/dnode/mnode/impl/src/mndTelem.c
source/dnode/mnode/impl/src/mndTelem.c
+6
-9
source/libs/tfs/CMakeLists.txt
source/libs/tfs/CMakeLists.txt
+1
-1
source/libs/tfs/src/tfs.c
source/libs/tfs/src/tfs.c
+21
-0
source/os/src/osEnv.c
source/os/src/osEnv.c
+8
-3
source/os/src/osSysinfo.c
source/os/src/osSysinfo.c
+170
-199
未找到文件。
include/libs/monitor/monitor.h
浏览文件 @
d9072005
...
...
@@ -88,18 +88,18 @@ typedef struct {
float
cpu_engine
;
float
cpu_system
;
float
cpu_cores
;
float
mem_engine
;
// M
B
float
mem_system
;
// M
B
float
mem_total
;
// M
B
int64_t
mem_engine
;
// K
B
int64_t
mem_system
;
// K
B
int64_t
mem_total
;
// K
B
float
disk_engine
;
// GB
float
disk_used
;
// GB
float
disk_total
;
// GB
float
net_in
;
// Kb/s
float
net_out
;
// Kb/s
float
io_read
;
// Mb/s
float
io_write
;
// Mb/s
float
io_read_disk
;
// Mb/s
float
io_write_disk
;
// Mb/s
int64_t
net_in
;
int64_t
net_out
;
float
io_read
;
float
io_write
;
float
io_read_disk
;
float
io_write_disk
;
int32_t
req_select
;
float
req_select_rate
;
int32_t
req_insert
;
...
...
include/libs/tfs/tfs.h
浏览文件 @
d9072005
...
...
@@ -17,6 +17,7 @@
#define _TD_TFS_H_
#include "tdef.h"
#include "monitor.h"
#ifdef __cplusplus
extern
"C"
{
...
...
@@ -237,6 +238,14 @@ const STfsFile *tfsReaddir(STfsDir *pDir);
*/
void
tfsClosedir
(
STfsDir
*
pDir
);
/**
* @brief Get disk info of tfs.
*
* @param pTfs The fs object.
* @param pInfo The info object.
*/
int32_t
tfsGetMonitorInfo
(
STfs
*
pTfs
,
SMonDiskInfo
*
pInfo
);
#ifdef __cplusplus
}
#endif
...
...
include/os/osEnv.h
浏览文件 @
d9072005
...
...
@@ -28,11 +28,11 @@ extern char tsCharset[];
extern
char
tsLocale
[];
extern
int8_t
tsDaylight
;
extern
bool
tsEnableCoreFile
;
extern
int64_t
tsPageSize
;
extern
int64_t
tsPageSize
KB
;
extern
int64_t
tsOpenMax
;
extern
int64_t
tsStreamMax
;
extern
int32_t
tsNumOfCores
;
extern
int
32_t
tsTotalMemoryM
B
;
extern
float
tsNumOfCores
;
extern
int
64_t
tsTotalMemoryK
B
;
extern
char
configDir
[];
extern
char
tsDataDir
[];
...
...
include/os/osSysinfo.h
浏览文件 @
d9072005
...
...
@@ -34,19 +34,19 @@ typedef struct {
}
SDiskSpace
;
void
taosGetSystemInfo
();
bool
taosGetEmail
(
char
*
email
,
int32_t
maxLen
);
bool
taosGetOsReleaseName
(
char
*
releaseName
,
int32_t
maxLen
);
bool
taosGetCpuInfo
(
char
*
cpuModel
,
int32_t
maxLen
,
int32_
t
*
numOfCores
);
int32_t
taosGetCpuCores
();
bool
taosGetCpuUsage
(
float
*
sysCpuUsage
,
float
*
procCpuUsag
e
);
bool
taosGetTotalSysMemoryKB
(
uint64_t
*
kb
);
bool
taosGetProcMemory
(
float
*
memoryUsedMB
);
//
bool
taosGetSysMemory
(
float
*
memoryUsedMB
);
//
int32_t
taosGetEmail
(
char
*
email
,
int32_t
maxLen
);
int32_t
taosGetOsReleaseName
(
char
*
releaseName
,
int32_t
maxLen
);
int32_t
taosGetCpuInfo
(
char
*
cpuModel
,
int32_t
maxLen
,
floa
t
*
numOfCores
);
int32_t
taosGetCpuCores
(
float
*
numOfCores
);
int32_t
taosGetCpuUsage
(
float
*
cpu_system
,
float
*
cpu_engin
e
);
int32_t
taosGetTotalMemory
(
int64_t
*
totalKB
);
int32_t
taosGetProcMemory
(
int64_t
*
usedKB
);
int32_t
taosGetSysMemory
(
int64_t
*
usedKB
);
int32_t
taosGetDiskSize
(
char
*
dataDir
,
SDiskSize
*
diskSize
);
bool
taosReadProcIO
(
int64_t
*
rchars
,
int64_t
*
wchars
);
bool
taosGetProcIO
(
float
*
readKB
,
float
*
writeKB
);
bool
taosGetCardInfo
(
int64_t
*
bytes
,
int64_t
*
rbytes
,
int64_t
*
tbytes
);
bool
taosGetBandSpeed
(
float
*
bandSpeedKb
);
int32_t
taosReadProcIO
(
int64_t
*
rchars
,
int64_t
*
wchars
);
int32_t
taosGetProcIO
(
float
*
readKB
,
float
*
writeKB
);
int32_t
taosGetCardInfo
(
int64_t
*
bytes
,
int64_t
*
rbytes
,
int64_t
*
tbytes
);
int32_t
taosGetBandSpeed
(
float
*
bandSpeedKb
);
int32_t
taosSystem
(
const
char
*
cmd
);
void
taosKillSystem
();
...
...
source/common/src/tglobal.c
浏览文件 @
d9072005
...
...
@@ -279,11 +279,11 @@ static int32_t taosAddSystemCfg(SConfig *pCfg) {
if
(
cfgAddLocale
(
pCfg
,
"locale"
,
tsLocale
)
!=
0
)
return
-
1
;
if
(
cfgAddCharset
(
pCfg
,
"charset"
,
tsCharset
)
!=
0
)
return
-
1
;
if
(
cfgAddBool
(
pCfg
,
"enableCoreFile"
,
1
,
1
)
!=
0
)
return
-
1
;
if
(
cfgAddInt32
(
pCfg
,
"numOfCores"
,
tsNumOfCores
,
1
,
100000
,
1
)
!=
0
)
return
-
1
;
if
(
cfgAddInt32
(
pCfg
,
"pageSize(KB)"
,
tsPageSize
,
0
,
INT64_MAX
,
1
)
!=
0
)
return
-
1
;
if
(
cfgAddFloat
(
pCfg
,
"numOfCores"
,
tsNumOfCores
,
0
,
100000
,
1
)
!=
0
)
return
-
1
;
if
(
cfgAddInt64
(
pCfg
,
"openMax"
,
tsOpenMax
,
0
,
INT64_MAX
,
1
)
!=
0
)
return
-
1
;
if
(
cfgAddInt64
(
pCfg
,
"streamMax"
,
tsStreamMax
,
0
,
INT64_MAX
,
1
)
!=
0
)
return
-
1
;
if
(
cfgAddInt32
(
pCfg
,
"totalMemory(MB)"
,
tsTotalMemoryMB
,
0
,
INT32_MAX
,
1
)
!=
0
)
return
-
1
;
if
(
cfgAddInt32
(
pCfg
,
"pageSize(KB)"
,
tsPageSizeKB
,
0
,
INT64_MAX
,
1
)
!=
0
)
return
-
1
;
if
(
cfgAddInt64
(
pCfg
,
"totalMemory(KB)"
,
tsTotalMemoryKB
,
0
,
INT64_MAX
,
1
)
!=
0
)
return
-
1
;
if
(
cfgAddString
(
pCfg
,
"os sysname"
,
info
.
sysname
,
1
)
!=
0
)
return
-
1
;
if
(
cfgAddString
(
pCfg
,
"os nodename"
,
info
.
nodename
,
1
)
!=
0
)
return
-
1
;
if
(
cfgAddString
(
pCfg
,
"os release"
,
info
.
release
,
1
)
!=
0
)
return
-
1
;
...
...
@@ -404,10 +404,6 @@ static void taosSetSystemCfg(SConfig *pCfg) {
const
char
*
charset
=
cfgGetItem
(
pCfg
,
"charset"
)
->
str
;
taosSetSystemLocale
(
locale
,
charset
);
if
(
tsNumOfCores
<=
1
)
{
tsNumOfCores
=
2
;
}
bool
enableCore
=
cfgGetItem
(
pCfg
,
"enableCoreFile"
)
->
bval
;
taosSetConsoleEcho
(
enableCore
);
...
...
source/dnode/mgmt/impl/inc/dndEnv.h
浏览文件 @
d9072005
...
...
@@ -31,7 +31,7 @@ typedef struct {
SDnode
*
pDnode
;
STaosQueue
*
queue
;
union
{
SQWorkerPool
pool
;
SQWorkerPool
pool
;
SWWorkerPool
mpool
;
};
}
SDnodeWorker
;
...
...
@@ -137,8 +137,7 @@ typedef struct SDnode {
SStartupReq
startup
;
}
SDnode
;
int32_t
dndGetDiskInfo
(
SDnode
*
pDnode
,
SMonDiskInfo
*
pInfo
);
int32_t
dndGetMonitorDiskInfo
(
SDnode
*
pDnode
,
SMonDiskInfo
*
pInfo
);
#ifdef __cplusplus
}
...
...
source/dnode/mgmt/impl/inc/dndMnode.h
浏览文件 @
d9072005
...
...
@@ -34,6 +34,7 @@ int32_t dndProcessDropMnodeReq(SDnode *pDnode, SRpcMsg *pRpcMsg);
int32_t
dndGetMnodeMonitorInfo
(
SDnode
*
pDnode
,
SMonClusterInfo
*
pClusterInfo
,
SMonVgroupInfo
*
pVgroupInfo
,
SMonGrantInfo
*
pGrantInfo
);
int8_t
dndIsMnode
(
SDnode
*
pDnode
);
#ifdef __cplusplus
}
...
...
source/dnode/mgmt/impl/src/dndEnv.c
浏览文件 @
d9072005
...
...
@@ -324,4 +324,11 @@ void dndCleanup() {
dInfo
(
"dnode env is cleaned up"
);
}
int32_t
dndGetDiskInfo
(
SDnode
*
pDnode
,
SMonDiskInfo
*
pInfo
)
{
return
0
;
}
\ No newline at end of file
int32_t
dndGetMonitorDiskInfo
(
SDnode
*
pDnode
,
SMonDiskInfo
*
pInfo
)
{
tstrncpy
(
pInfo
->
logdir
.
name
,
tsLogDir
,
sizeof
(
pInfo
->
logdir
.
name
));
pInfo
->
logdir
.
size
=
tsLogSpace
.
size
;
tstrncpy
(
pInfo
->
tempdir
.
name
,
tsTempDir
,
sizeof
(
pInfo
->
tempdir
.
name
));
pInfo
->
tempdir
.
size
=
tsTempSpace
.
size
;
return
tfsGetMonitorInfo
(
pDnode
->
pTfs
,
pInfo
);
}
\ No newline at end of file
source/dnode/mgmt/impl/src/dndMgmt.c
浏览文件 @
d9072005
...
...
@@ -474,13 +474,38 @@ void dndProcessStartupReq(SDnode *pDnode, SRpcMsg *pReq) {
rpcSendResponse
(
&
rpcRsp
);
}
static
int32_t
dndGet
BasicInfo
(
SDnode
*
pDnode
,
SMonBasicInfo
*
pInfo
)
{
static
void
dndGetMonitor
BasicInfo
(
SDnode
*
pDnode
,
SMonBasicInfo
*
pInfo
)
{
pInfo
->
dnode_id
=
dndGetDnodeId
(
pDnode
);
tstrncpy
(
pInfo
->
dnode_ep
,
tsLocalEp
,
TSDB_EP_LEN
);
return
0
;
}
static
int32_t
dndGetDnodeInfo
(
SDnode
*
pDnode
,
SMonDnodeInfo
*
pInfo
)
{
return
0
;
}
static
void
dndGetMonitorDnodeInfo
(
SDnode
*
pDnode
,
SMonDnodeInfo
*
pInfo
)
{
pInfo
->
uptime
=
(
taosGetTimestampMs
()
-
pDnode
->
dmgmt
.
rebootTime
)
/
(
86400000
.
0
f
);
taosGetCpuUsage
(
&
pInfo
->
cpu_engine
,
&
pInfo
->
cpu_system
);
pInfo
->
cpu_cores
=
tsNumOfCores
;
taosGetProcMemory
(
&
pInfo
->
mem_engine
);
taosGetSysMemory
(
&
pInfo
->
mem_system
);
pInfo
->
mem_total
=
tsTotalMemoryKB
;
pInfo
->
disk_engine
=
0
;
pInfo
->
disk_used
=
tsDataSpace
.
size
.
used
/
(
1024
*
1024
*
1024
.
0
);
pInfo
->
disk_total
=
tsDataSpace
.
size
.
avail
/
(
1024
*
1024
*
1024
.
0
);
taosGetCardInfo
(
NULL
,
&
pInfo
->
net_in
,
&
pInfo
->
net_out
);
taosGetProcIO
(
&
pInfo
->
io_read
,
&
pInfo
->
io_write
);
pInfo
->
io_read_disk
=
0
;
pInfo
->
io_write_disk
=
0
;
pInfo
->
req_select
=
0
;
pInfo
->
req_select_rate
=
0
;
pInfo
->
req_insert
=
0
;
pInfo
->
req_insert_success
=
0
;
pInfo
->
req_insert_rate
=
0
;
pInfo
->
req_insert_batch
=
0
;
pInfo
->
req_insert_batch_success
=
0
;
pInfo
->
req_insert_batch_rate
=
0
;
pInfo
->
errors
=
0
;
pInfo
->
vnodes_num
=
0
;
pInfo
->
masters
=
0
;
pInfo
->
has_mnode
=
dndIsMnode
(
pDnode
);
}
static
void
dndSendMonitorReport
(
SDnode
*
pDnode
)
{
if
(
!
tsEnableMonitor
||
tsMonitorFqdn
[
0
]
==
0
||
tsMonitorPort
==
0
)
return
;
...
...
@@ -490,9 +515,8 @@ static void dndSendMonitorReport(SDnode *pDnode) {
if
(
pMonitor
==
NULL
)
return
;
SMonBasicInfo
basicInfo
=
{
0
};
if
(
dndGetBasicInfo
(
pDnode
,
&
basicInfo
)
==
0
)
{
monSetBasicInfo
(
pMonitor
,
&
basicInfo
);
}
dndGetMonitorBasicInfo
(
pDnode
,
&
basicInfo
);
monSetBasicInfo
(
pMonitor
,
&
basicInfo
);
SMonClusterInfo
clusterInfo
=
{
0
};
SMonVgroupInfo
vgroupInfo
=
{
0
};
...
...
@@ -504,15 +528,19 @@ static void dndSendMonitorReport(SDnode *pDnode) {
}
SMonDnodeInfo
dnodeInfo
=
{
0
};
if
(
dndGetDnodeInfo
(
pDnode
,
&
dnodeInfo
)
==
0
)
{
monSetDnodeInfo
(
pMonitor
,
&
dnodeInfo
);
}
dndGetMonitorDnodeInfo
(
pDnode
,
&
dnodeInfo
);
monSetDnodeInfo
(
pMonitor
,
&
dnodeInfo
);
SMonDiskInfo
diskInfo
=
{
0
};
if
(
dndGetDiskInfo
(
pDnode
,
&
diskInfo
)
==
0
)
{
if
(
dndGet
Monitor
DiskInfo
(
pDnode
,
&
diskInfo
)
==
0
)
{
monSetDiskInfo
(
pMonitor
,
&
diskInfo
);
}
taosArrayDestroy
(
clusterInfo
.
dnodes
);
taosArrayDestroy
(
clusterInfo
.
mnodes
);
taosArrayDestroy
(
vgroupInfo
.
vgroups
);
taosArrayDestroy
(
diskInfo
.
datadirs
);
monSendReport
(
pMonitor
);
monCleanupMonitorInfo
(
pMonitor
);
}
...
...
source/dnode/mgmt/impl/src/dndMnode.c
浏览文件 @
d9072005
...
...
@@ -639,4 +639,11 @@ int32_t dndGetMnodeMonitorInfo(SDnode *pDnode, SMonClusterInfo *pClusterInfo, SM
int32_t
code
=
mndGetMonitorInfo
(
pMnode
,
pClusterInfo
,
pVgroupInfo
,
pGrantInfo
);
dndReleaseMnode
(
pDnode
,
pMnode
);
return
code
;
}
int8_t
dndIsMnode
(
SDnode
*
pDnode
)
{
SMnode
*
pMnode
=
dndAcquireMnode
(
pDnode
);
if
(
pMnode
==
NULL
)
return
0
;
dndReleaseMnode
(
pDnode
,
pMnode
);
return
1
;
}
\ No newline at end of file
source/dnode/mnode/impl/src/mndTelem.c
浏览文件 @
d9072005
...
...
@@ -52,23 +52,20 @@ static char* mndBuildTelemetryReport(SMnode* pMnode) {
tjsonAddStringToObject
(
pJson
,
"instanceId"
,
clusterName
);
tjsonAddDoubleToObject
(
pJson
,
"reportVersion"
,
1
);
if
(
taosGetOsReleaseName
(
tmp
,
sizeof
(
tmp
)))
{
if
(
taosGetOsReleaseName
(
tmp
,
sizeof
(
tmp
))
==
0
)
{
tjsonAddStringToObject
(
pJson
,
"os"
,
tmp
);
}
int32_
t
numOfCores
=
0
;
if
(
taosGetCpuInfo
(
tmp
,
sizeof
(
tmp
),
&
numOfCores
))
{
floa
t
numOfCores
=
0
;
if
(
taosGetCpuInfo
(
tmp
,
sizeof
(
tmp
),
&
numOfCores
)
==
0
)
{
tjsonAddStringToObject
(
pJson
,
"cpuModel"
,
tmp
);
tjsonAddDoubleToObject
(
pJson
,
"numOfCpu"
,
numOfCores
);
}
else
{
tjsonAddDoubleToObject
(
pJson
,
"numOfCpu"
,
t
aosGetCpuCores
()
);
tjsonAddDoubleToObject
(
pJson
,
"numOfCpu"
,
t
sNumOfCores
);
}
uint64_t
memoryKB
=
0
;
if
(
taosGetTotalSysMemoryKB
(
&
memoryKB
))
{
snprintf
(
tmp
,
sizeof
(
tmp
),
"%"
PRIu64
" kB"
,
memoryKB
);
tjsonAddStringToObject
(
pJson
,
"memory"
,
tmp
);
}
snprintf
(
tmp
,
sizeof
(
tmp
),
"%"
PRId64
" kB"
,
tsTotalMemoryKB
);
tjsonAddStringToObject
(
pJson
,
"memory"
,
tmp
);
tjsonAddStringToObject
(
pJson
,
"version"
,
version
);
tjsonAddStringToObject
(
pJson
,
"buildInfo"
,
buildinfo
);
...
...
source/libs/tfs/CMakeLists.txt
浏览文件 @
d9072005
...
...
@@ -6,7 +6,7 @@ target_include_directories(
PRIVATE
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/inc"
)
target_link_libraries
(
tfs os util common
)
target_link_libraries
(
tfs os util common
monitor
)
if
(
${
BUILD_TEST
}
)
add_subdirectory
(
test
)
...
...
source/libs/tfs/src/tfs.c
浏览文件 @
d9072005
...
...
@@ -544,3 +544,24 @@ static STfsDisk *tfsNextDisk(STfs *pTfs, SDiskIter *pIter) {
return
pDisk
;
}
int32_t
tfsGetMonitorInfo
(
STfs
*
pTfs
,
SMonDiskInfo
*
pInfo
)
{
pInfo
->
datadirs
=
taosArrayInit
(
32
,
sizeof
(
SMonDiskDesc
));
if
(
pInfo
->
datadirs
==
NULL
)
return
-
1
;
tfsUpdateSize
(
pTfs
);
tfsLock
(
pTfs
);
for
(
int32_t
level
=
0
;
level
<
pTfs
->
nlevel
;
level
++
)
{
STfsTier
*
pTier
=
&
pTfs
->
tiers
[
level
];
for
(
int32_t
disk
=
0
;
disk
<
pTier
->
ndisk
;
++
disk
)
{
STfsDisk
*
pDisk
=
pTier
->
disks
[
disk
];
SMonDiskDesc
dinfo
=
{
0
};
dinfo
.
size
=
pDisk
->
size
;
dinfo
.
level
=
pDisk
->
level
;
tstrncpy
(
dinfo
.
name
,
pDisk
->
path
,
sizeof
(
dinfo
.
name
));
taosArrayPush
(
pInfo
->
datadirs
,
&
dinfo
);
}
}
tfsUnLock
(
pTfs
);
}
\ No newline at end of file
source/os/src/osEnv.c
浏览文件 @
d9072005
...
...
@@ -31,11 +31,11 @@ char tsLocale[TD_LOCALE_LEN] = {0};
char
tsCharset
[
TD_CHARSET_LEN
]
=
{
0
};
int8_t
tsDaylight
=
0
;
bool
tsEnableCoreFile
=
0
;
int64_t
tsPageSize
=
0
;
int64_t
tsPageSize
KB
=
0
;
int64_t
tsOpenMax
=
0
;
int64_t
tsStreamMax
=
0
;
int32_t
tsNumOfCores
=
0
;
int
32_t
tsTotalMemoryM
B
=
0
;
float
tsNumOfCores
=
0
;
int
64_t
tsTotalMemoryK
B
=
0
;
void
osInit
()
{
srand
(
taosSafeRand
());
...
...
@@ -44,6 +44,11 @@ void osInit() {
taosSetSystemTimezone
(
tsTimezone
,
tsTimezone
,
&
tsDaylight
);
taosGetSystemInfo
();
// deadlock in query
if
(
tsNumOfCores
<
2
)
{
tsNumOfCores
=
2
;
}
#if defined(_TD_WINDOWS_64) || defined(_TD_WINDOWS_32)
taosWinSocketInit
();
...
...
source/os/src/osSysinfo.c
浏览文件 @
d9072005
...
...
@@ -39,32 +39,32 @@
#include <DbgHelp.h>
#pragma warning(pop)
static
int32_t
taosGetTotalMemory
(
)
{
int32_t
taosGetTotalMemory
(
int64_t
*
totalKB
)
{
MEMORYSTATUSEX
memsStat
;
memsStat
.
dwLength
=
sizeof
(
memsStat
);
if
(
!
GlobalMemoryStatusEx
(
&
memsStat
))
{
return
0
;
return
-
1
;
}
float
nMemTotal
=
memsStat
.
ullTotalPhys
/
(
1024
.
0
f
*
1024
.
0
f
)
;
return
(
int32_t
)
nMemTotal
;
*
totalKB
=
memsStat
.
ullTotalPhys
/
1024
;
return
0
;
}
bool
taosGetSysMemory
(
float
*
memoryUsedM
B
)
{
int32_t
taosGetSysMemory
(
int64_t
*
usedK
B
)
{
MEMORYSTATUSEX
memsStat
;
memsStat
.
dwLength
=
sizeof
(
memsStat
);
if
(
!
GlobalMemoryStatusEx
(
&
memsStat
))
{
return
false
;
return
-
1
;
}
float
nMemFree
=
memsStat
.
ullAvailPhys
/
(
1024
.
0
f
*
1024
.
0
f
)
;
float
nMemTotal
=
memsStat
.
ullTotalPhys
/
(
1024
.
0
f
*
1024
.
0
f
)
;
int64_t
nMemFree
=
memsStat
.
ullAvailPhys
/
1024
;
int64_t
nMemTotal
=
memsStat
.
ullTotalPhys
/
1024
.
0
;
*
memoryUsedM
B
=
nMemTotal
-
nMemFree
;
return
true
;
*
usedK
B
=
nMemTotal
-
nMemFree
;
return
0
;
}
bool
taosGetProcMemory
(
float
*
memoryUsedM
B
)
{
int32_t
taosGetProcMemory
(
int64_t
*
usedK
B
)
{
unsigned
bytes_used
=
0
;
#if defined(_WIN64) && defined(_MSC_VER)
...
...
@@ -76,21 +76,21 @@ bool taosGetProcMemory(float *memoryUsedMB) {
}
#endif
*
memoryUsedMB
=
(
float
)
bytes_used
/
1024
/
1024
;
return
true
;
*
usedKB
=
bytes_used
/
1024
;
return
0
;
}
int32_t
taosGetCpuCores
()
{
int32_t
taosGetCpuCores
(
float
*
numOfCores
)
{
SYSTEM_INFO
info
;
GetSystemInfo
(
&
info
);
return
(
int32_t
)
info
.
dwNumberOfProcessors
;
*
numOfCores
=
info
.
dwNumberOfProcessors
;
return
0
;
}
bool
taosGetCpuUsage
(
float
*
sysCpuUsage
,
float
*
procCpuUsage
)
{
int32_t
taosGetCpuUsage
(
float
*
sysCpuUsage
,
float
*
procCpuUsage
)
{
*
sysCpuUsage
=
0
;
*
procCpuUsage
=
0
;
return
true
;
return
0
;
}
int32_t
taosGetDiskSize
(
char
*
dataDir
,
SDiskSize
*
diskSize
)
{
...
...
@@ -106,49 +106,49 @@ int32_t taosGetDiskSize(char *dataDir, SDiskSize *diskSize) {
diskSize
->
used
=
(
int64_t
)(
i64TotalBytes
-
i64FreeBytes
);
return
0
;
}
else
{
//printf("failed to get disk size, dataDir:%s errno:%s", tsDataDir, strerror(errno));
//
printf("failed to get disk size, dataDir:%s errno:%s", tsDataDir, strerror(errno));
terrno
=
TAOS_SYSTEM_ERROR
(
errno
);
return
-
1
;
}
}
bool
taosGetCardInfo
(
int64_t
*
bytes
,
int64_t
*
rbytes
,
int64_t
*
tbytes
)
{
int32_t
taosGetCardInfo
(
int64_t
*
bytes
,
int64_t
*
rbytes
,
int64_t
*
tbytes
)
{
if
(
bytes
)
*
bytes
=
0
;
if
(
rbytes
)
*
rbytes
=
0
;
if
(
tbytes
)
*
tbytes
=
0
;
return
true
;
return
0
;
}
bool
taosGetBandSpeed
(
float
*
bandSpeedKb
)
{
int32_t
taosGetBandSpeed
(
float
*
bandSpeedKb
)
{
*
bandSpeedKb
=
0
;
return
true
;
return
0
;
}
bool
taosReadProcIO
(
int64_t
*
readbyte
,
int64_t
*
writebyte
)
{
int32_t
taosReadProcIO
(
int64_t
*
readbyte
,
int64_t
*
writebyte
)
{
IO_COUNTERS
io_counter
;
if
(
GetProcessIoCounters
(
GetCurrentProcess
(),
&
io_counter
))
{
if
(
readbyte
)
*
readbyte
=
io_counter
.
ReadTransferCount
;
if
(
writebyte
)
*
writebyte
=
io_counter
.
WriteTransferCount
;
return
true
;
return
0
;
}
return
false
;
return
-
1
;
}
bool
taosGetProcIO
(
float
*
readKB
,
float
*
writeKB
)
{
int32_t
taosGetProcIO
(
float
*
readKB
,
float
*
writeKB
)
{
static
int64_t
lastReadbyte
=
-
1
;
static
int64_t
lastWritebyte
=
-
1
;
int64_t
curReadbyte
=
0
;
int64_t
curWritebyte
=
0
;
if
(
!
taosReadProcIO
(
&
curReadbyte
,
&
curWritebyte
)
)
{
return
false
;
if
(
taosReadProcIO
(
&
curReadbyte
,
&
curWritebyte
)
!=
0
)
{
return
-
1
;
}
if
(
lastReadbyte
==
-
1
||
lastWritebyte
==
-
1
)
{
lastReadbyte
=
curReadbyte
;
lastWritebyte
=
curWritebyte
;
return
false
;
return
-
1
;
}
*
readKB
=
(
float
)((
double
)(
curReadbyte
-
lastReadbyte
)
/
1024
);
...
...
@@ -159,12 +159,12 @@ bool taosGetProcIO(float *readKB, float *writeKB) {
lastReadbyte
=
curReadbyte
;
lastWritebyte
=
curWritebyte
;
return
true
;
return
0
;
}
void
taosGetSystemInfo
()
{
t
sNumOfCores
=
taosGetCpuCores
(
);
t
sTotalMemoryMB
=
taosGetTotalMemory
(
);
t
aosGetCpuCores
(
&
tsNumOfCores
);
t
aosGetTotalMemory
(
&
tsTotalMemoryKB
);
float
tmp1
,
tmp2
;
taosGetBandSpeed
(
&
tmp1
);
...
...
@@ -173,12 +173,12 @@ void taosGetSystemInfo() {
}
void
taosKillSystem
()
{
//printf("function taosKillSystem, exit!");
//
printf("function taosKillSystem, exit!");
exit
(
0
);
}
int
taosSystem
(
const
char
*
cmd
)
{
//printf("taosSystem not support");
//
printf("taosSystem not support");
return
-
1
;
}
...
...
@@ -241,66 +241,66 @@ char *taosGetCmdlineByPID(int pid) { return ""; }
#include <errno.h>
#include <libproc.h>
void
taosKillSystem
()
{
//printf("function taosKillSystem, exit!");
//
printf("function taosKillSystem, exit!");
exit
(
0
);
}
int32_t
taosGetCpuCores
()
{
return
sysconf
(
_SC_NPROCESSORS_ONLN
);
}
int32_t
taosGetCpuCores
(
float
*
numOfCores
)
{
*
numOfCores
=
sysconf
(
_SC_NPROCESSORS_ONLN
);
return
0
;
}
void
taosGetSystemInfo
()
{
// taosGetProcInfos();
tsNumOfCores
=
sysconf
(
_SC_NPROCESSORS_ONLN
);
long
physical_pages
=
sysconf
(
_SC_PHYS_PAGES
);
long
page_size
=
sysconf
(
_SC_PAGESIZE
);
tsTotalMemoryMB
=
physical_pages
*
page_size
/
(
1024
*
1024
);
tsPageSize
=
page_size
;
tsTotalMemoryKB
=
physical_pages
*
page_size
/
1024
;
tsPageSizeKB
=
page_size
/
1024
;
tsNumOfCores
=
sysconf
(
_SC_NPROCESSORS_ONLN
);
}
bool
taosReadProcIO
(
int64_t
*
rchars
,
int64_t
*
wchars
)
{
int32_t
taosReadProcIO
(
int64_t
*
rchars
,
int64_t
*
wchars
)
{
if
(
rchars
)
*
rchars
=
0
;
if
(
wchars
)
*
wchars
=
0
;
return
true
;
return
0
;
}
bool
taosGetProcIO
(
float
*
readKB
,
float
*
writeKB
)
{
int32_t
taosGetProcIO
(
float
*
readKB
,
float
*
writeKB
)
{
*
readKB
=
0
;
*
writeKB
=
0
;
return
true
;
return
0
;
}
bool
taosGetCardInfo
(
int64_t
*
bytes
,
int64_t
*
rbytes
,
int64_t
*
tbytes
)
{
int32_t
taosGetCardInfo
(
int64_t
*
bytes
,
int64_t
*
rbytes
,
int64_t
*
tbytes
)
{
if
(
bytes
)
*
bytes
=
0
;
if
(
rbytes
)
*
rbytes
=
0
;
if
(
tbytes
)
*
tbytes
=
0
;
return
true
;
return
0
;
}
bool
taosGetBandSpeed
(
float
*
bandSpeedKb
)
{
int32_t
taosGetBandSpeed
(
float
*
bandSpeedKb
)
{
*
bandSpeedKb
=
0
;
return
true
;
return
0
;
}
bool
taosGetCpuUsage
(
float
*
sysCpuUsage
,
float
*
procCpuUsage
)
{
int32_t
taosGetCpuUsage
(
float
*
sysCpuUsage
,
float
*
procCpuUsage
)
{
*
sysCpuUsage
=
0
;
*
procCpuUsage
=
0
;
return
true
;
return
0
;
}
bool
taosGetProcMemory
(
float
*
memoryUsedM
B
)
{
*
memoryUsedM
B
=
0
;
return
true
;
int32_t
taosGetProcMemory
(
int64_t
*
usedK
B
)
{
*
usedK
B
=
0
;
return
0
;
}
bool
taosGetSysMemory
(
float
*
memoryUsedM
B
)
{
*
memoryUsedM
B
=
0
;
return
true
;
int32_t
taosGetSysMemory
(
int64_t
*
usedK
B
)
{
*
usedK
B
=
0
;
return
0
;
}
int
taosSystem
(
const
char
*
cmd
)
{
//printf("un support funtion");
//
printf("un support funtion");
return
-
1
;
}
...
...
@@ -309,7 +309,7 @@ void taosSetCoreDump() {}
int32_t
taosGetDiskSize
(
char
*
dataDir
,
SDiskSize
*
diskSize
)
{
struct
statvfs
info
;
if
(
statvfs
(
dataDir
,
&
info
))
{
//printf("failed to get disk size, dataDir:%s errno:%s", tsDataDir, strerror(errno));
//
printf("failed to get disk size, dataDir:%s errno:%s", tsDataDir, strerror(errno));
terrno
=
TAOS_SYSTEM_ERROR
(
errno
);
return
-
1
;
}
else
{
...
...
@@ -377,39 +377,38 @@ static char tsSysCpuFile[] = "/proc/stat";
static
char
tsProcCpuFile
[
25
]
=
{
0
};
static
char
tsProcMemFile
[
25
]
=
{
0
};
static
char
tsProcIOFile
[
25
]
=
{
0
};
static
float
tsPageSizeKB
=
0
;
static
void
taosGetProcInfos
()
{
tsPageSize
=
sysconf
(
_SC_PAGESIZE
)
;
tsPageSize
KB
=
sysconf
(
_SC_PAGESIZE
)
/
1024
;
tsOpenMax
=
sysconf
(
_SC_OPEN_MAX
);
tsStreamMax
=
sysconf
(
_SC_STREAM_MAX
);
tsProcId
=
(
pid_t
)
syscall
(
SYS_gettid
);
tsPageSizeKB
=
(
float
)(
sysconf
(
_SC_PAGESIZE
))
/
1024
;
snprintf
(
tsProcMemFile
,
25
,
"/proc/%d/status"
,
tsProcId
);
snprintf
(
tsProcCpuFile
,
25
,
"/proc/%d/stat"
,
tsProcId
);
snprintf
(
tsProcIOFile
,
25
,
"/proc/%d/io"
,
tsProcId
);
snprintf
(
tsProcMemFile
,
sizeof
(
tsProcMemFile
)
,
"/proc/%d/status"
,
tsProcId
);
snprintf
(
tsProcCpuFile
,
sizeof
(
tsProcCpuFile
)
,
"/proc/%d/stat"
,
tsProcId
);
snprintf
(
tsProcIOFile
,
sizeof
(
tsProcIOFile
)
,
"/proc/%d/io"
,
tsProcId
);
}
static
int32_t
taosGetTotalMemory
()
{
return
(
int32_t
)((
float
)
sysconf
(
_SC_PHYS_PAGES
)
*
tsPageSizeKB
/
1024
);
}
int32_t
taosGetTotalMemory
(
int64_t
*
totalKB
)
{
*
totalKB
=
(
int64_t
)(
sysconf
(
_SC_PHYS_PAGES
)
*
tsPageSizeKB
);
return
0
;
}
bool
taosGetSysMemory
(
float
*
memoryUsedMB
)
{
float
memoryAvailMB
=
(
float
)
sysconf
(
_SC_AVPHYS_PAGES
)
*
tsPageSizeKB
/
1024
;
*
memoryUsedMB
=
(
float
)
tsTotalMemoryMB
-
memoryAvailMB
;
return
true
;
int32_t
taosGetSysMemory
(
int64_t
*
usedKB
)
{
*
usedKB
=
sysconf
(
_SC_AVPHYS_PAGES
)
*
tsPageSizeKB
;
return
0
;
}
bool
taosGetProcMemory
(
float
*
memoryUsedM
B
)
{
int32_t
taosGetProcMemory
(
int64_t
*
usedK
B
)
{
// FILE *fp = fopen(tsProcMemFile, "r");
TdFilePtr
pFile
=
taosOpenFile
(
tsProcMemFile
,
TD_FILE_READ
|
TD_FILE_STREAM
);
if
(
pFile
==
NULL
)
{
//printf("open file:%s failed", tsProcMemFile);
return
false
;
//
printf("open file:%s failed", tsProcMemFile);
return
-
1
;
}
ssize_t
_bytes
=
0
;
char
*
line
=
NULL
;
char
*
line
=
NULL
;
while
(
!
taosEOFFile
(
pFile
))
{
_bytes
=
taosGetLineFile
(
pFile
,
&
line
);
if
((
_bytes
<
0
)
||
(
line
==
NULL
))
{
...
...
@@ -421,60 +420,58 @@ bool taosGetProcMemory(float *memoryUsedMB) {
}
if
(
line
==
NULL
)
{
//printf("read file:%s failed", tsProcMemFile);
//
printf("read file:%s failed", tsProcMemFile);
taosCloseFile
(
&
pFile
);
return
false
;
return
-
1
;
}
int64_t
memKB
=
0
;
char
tmp
[
10
];
sscanf
(
line
,
"%s %"
PRId64
,
tmp
,
&
memKB
);
*
memoryUsedMB
=
(
float
)((
double
)
memKB
/
1024
);
char
tmp
[
10
];
sscanf
(
line
,
"%s %"
PRId64
,
tmp
,
usedKB
);
if
(
line
!=
NULL
)
tfree
(
line
);
if
(
line
!=
NULL
)
tfree
(
line
);
taosCloseFile
(
&
pFile
);
return
true
;
return
0
;
}
static
bool
taosGetSysCpuInfo
(
SysCpuInfo
*
cpuInfo
)
{
static
int32_t
taosGetSysCpuInfo
(
SysCpuInfo
*
cpuInfo
)
{
// FILE *fp = fopen(tsSysCpuFile, "r");
TdFilePtr
pFile
=
taosOpenFile
(
tsSysCpuFile
,
TD_FILE_READ
|
TD_FILE_STREAM
);
if
(
pFile
==
NULL
)
{
//printf("open file:%s failed", tsSysCpuFile);
return
false
;
//
printf("open file:%s failed", tsSysCpuFile);
return
-
1
;
}
char
*
line
=
NULL
;
char
*
line
=
NULL
;
ssize_t
_bytes
=
taosGetLineFile
(
pFile
,
&
line
);
if
((
_bytes
<
0
)
||
(
line
==
NULL
))
{
//printf("read file:%s failed", tsSysCpuFile);
//
printf("read file:%s failed", tsSysCpuFile);
taosCloseFile
(
&
pFile
);
return
false
;
return
-
1
;
}
char
cpu
[
10
]
=
{
0
};
sscanf
(
line
,
"%s %"
PRIu64
" %"
PRIu64
" %"
PRIu64
" %"
PRIu64
,
cpu
,
&
cpuInfo
->
user
,
&
cpuInfo
->
nice
,
&
cpuInfo
->
system
,
&
cpuInfo
->
idle
);
if
(
line
!=
NULL
)
tfree
(
line
);
if
(
line
!=
NULL
)
tfree
(
line
);
taosCloseFile
(
&
pFile
);
return
true
;
return
0
;
}
static
bool
taosGetProcCpuInfo
(
ProcCpuInfo
*
cpuInfo
)
{
static
int32_t
taosGetProcCpuInfo
(
ProcCpuInfo
*
cpuInfo
)
{
// FILE *fp = fopen(tsProcCpuFile, "r");
TdFilePtr
pFile
=
taosOpenFile
(
tsProcCpuFile
,
TD_FILE_READ
|
TD_FILE_STREAM
);
if
(
pFile
==
NULL
)
{
//printf("open file:%s failed", tsProcCpuFile);
return
false
;
//
printf("open file:%s failed", tsProcCpuFile);
return
-
1
;
}
char
*
line
=
NULL
;
char
*
line
=
NULL
;
ssize_t
_bytes
=
taosGetLineFile
(
pFile
,
&
line
);
if
((
_bytes
<
0
)
||
(
line
==
NULL
))
{
//printf("read file:%s failed", tsProcCpuFile);
//
printf("read file:%s failed", tsProcCpuFile);
taosCloseFile
(
&
pFile
);
return
false
;
return
-
1
;
}
for
(
int
i
=
0
,
blank
=
0
;
line
[
i
]
!=
0
;
++
i
)
{
...
...
@@ -486,26 +483,28 @@ static bool taosGetProcCpuInfo(ProcCpuInfo *cpuInfo) {
}
}
if
(
line
!=
NULL
)
tfree
(
line
);
if
(
line
!=
NULL
)
tfree
(
line
);
taosCloseFile
(
&
pFile
);
return
true
;
return
0
;
}
int32_t
taosGetCpuCores
(
float
*
numOfCores
)
{
*
numOfCores
=
sysconf
(
_SC_NPROCESSORS_ONLN
);
return
0
;
}
int32_t
taosGetCpuCores
()
{
return
(
int32_t
)
sysconf
(
_SC_NPROCESSORS_ONLN
);
}
bool
taosGetCpuUsage
(
float
*
sysCpuUsage
,
float
*
procCpuUsage
)
{
int32_t
taosGetCpuUsage
(
float
*
cpu_system
,
float
*
cpu_engine
)
{
static
uint64_t
lastSysUsed
=
0
;
static
uint64_t
lastSysTotal
=
0
;
static
uint64_t
lastProcTotal
=
0
;
SysCpuInfo
sysCpu
;
ProcCpuInfo
procCpu
;
if
(
!
taosGetSysCpuInfo
(
&
sysCpu
)
)
{
return
false
;
if
(
taosGetSysCpuInfo
(
&
sysCpu
)
!=
0
)
{
return
-
1
;
}
if
(
!
taosGetProcCpuInfo
(
&
procCpu
)
)
{
return
false
;
if
(
taosGetProcCpuInfo
(
&
procCpu
)
!=
0
)
{
return
-
1
;
}
uint64_t
curSysUsed
=
sysCpu
.
user
+
sysCpu
.
nice
+
sysCpu
.
system
;
...
...
@@ -516,21 +515,21 @@ bool taosGetCpuUsage(float *sysCpuUsage, float *procCpuUsage) {
lastSysUsed
=
curSysUsed
>
1
?
curSysUsed
:
1
;
lastSysTotal
=
curSysTotal
>
1
?
curSysTotal
:
1
;
lastProcTotal
=
curProcTotal
>
1
?
curProcTotal
:
1
;
return
false
;
return
-
1
;
}
if
(
curSysTotal
==
lastSysTotal
)
{
return
false
;
return
-
1
;
}
*
sysCpuUsag
e
=
(
float
)((
double
)(
curSysUsed
-
lastSysUsed
)
/
(
double
)(
curSysTotal
-
lastSysTotal
)
*
100
);
*
procCpuUsage
=
(
float
)((
double
)(
curProcTotal
-
lastProcTotal
)
/
(
double
)(
curSysTotal
-
lastSysTotal
)
*
100
);
*
cpu_engin
e
=
(
float
)((
double
)(
curSysUsed
-
lastSysUsed
)
/
(
double
)(
curSysTotal
-
lastSysTotal
)
*
100
);
*
cpu_system
=
(
float
)((
double
)(
curProcTotal
-
lastProcTotal
)
/
(
double
)(
curSysTotal
-
lastSysTotal
)
*
100
);
lastSysUsed
=
curSysUsed
;
lastSysTotal
=
curSysTotal
;
lastProcTotal
=
curProcTotal
;
return
true
;
return
0
;
}
int32_t
taosGetDiskSize
(
char
*
dataDir
,
SDiskSize
*
diskSize
)
{
...
...
@@ -545,17 +544,17 @@ int32_t taosGetDiskSize(char *dataDir, SDiskSize *diskSize) {
}
}
bool
taosGetCardInfo
(
int64_t
*
bytes
,
int64_t
*
rbytes
,
int64_t
*
tbytes
)
{
*
bytes
=
0
;
int32_t
taosGetCardInfo
(
int64_t
*
bytes
,
int64_t
*
rbytes
,
int64_t
*
tbytes
)
{
if
(
bytes
)
*
bytes
=
0
;
// FILE *fp = fopen(tsSysNetFile, "r");
TdFilePtr
pFile
=
taosOpenFile
(
tsSysNetFile
,
TD_FILE_READ
|
TD_FILE_STREAM
);
if
(
pFile
==
NULL
)
{
//printf("open file:%s failed", tsSysNetFile);
return
false
;
//
printf("open file:%s failed", tsSysNetFile);
return
-
1
;
}
ssize_t
_bytes
=
0
;
char
*
line
=
NULL
;
char
*
line
=
NULL
;
while
(
!
taosEOFFile
(
pFile
))
{
int64_t
o_rbytes
=
0
;
...
...
@@ -587,37 +586,37 @@ bool taosGetCardInfo(int64_t *bytes, int64_t *rbytes, int64_t *tbytes) {
nouse0
,
&
o_rbytes
,
&
rpackts
,
&
nouse1
,
&
nouse2
,
&
nouse3
,
&
nouse4
,
&
nouse5
,
&
nouse6
,
&
o_tbytes
,
&
tpackets
);
if
(
rbytes
)
*
rbytes
=
o_rbytes
;
if
(
tbytes
)
*
tbytes
=
o_tbytes
;
*
bytes
+=
(
o_rbytes
+
o_tbytes
);
if
(
bytes
)
*
bytes
+=
(
o_rbytes
+
o_tbytes
);
}
if
(
line
!=
NULL
)
tfree
(
line
);
if
(
line
!=
NULL
)
tfree
(
line
);
taosCloseFile
(
&
pFile
);
return
true
;
return
0
;
}
bool
taosGetBandSpeed
(
float
*
bandSpeedKb
)
{
int32_t
taosGetBandSpeed
(
float
*
bandSpeedKb
)
{
static
int64_t
lastBytes
=
0
;
static
time_t
lastTime
=
0
;
int64_t
curBytes
=
0
;
time_t
curTime
=
time
(
NULL
);
if
(
!
taosGetCardInfo
(
&
curBytes
,
NULL
,
NULL
)
)
{
return
false
;
if
(
taosGetCardInfo
(
&
curBytes
,
NULL
,
NULL
)
!=
0
)
{
return
-
1
;
}
if
(
lastTime
==
0
||
lastBytes
==
0
)
{
lastTime
=
curTime
;
lastBytes
=
curBytes
;
*
bandSpeedKb
=
0
;
return
true
;
return
0
;
}
if
(
lastTime
>=
curTime
||
lastBytes
>
curBytes
)
{
lastTime
=
curTime
;
lastBytes
=
curBytes
;
*
bandSpeedKb
=
0
;
return
true
;
return
0
;
}
double
totalBytes
=
(
double
)(
curBytes
-
lastBytes
)
/
1024
*
8
;
// Kb
...
...
@@ -629,19 +628,19 @@ bool taosGetBandSpeed(float *bandSpeedKb) {
lastTime
=
curTime
;
lastBytes
=
curBytes
;
return
true
;
return
0
;
}
bool
taosReadProcIO
(
int64_t
*
rchars
,
int64_t
*
wchars
)
{
int32_t
taosReadProcIO
(
int64_t
*
rchars
,
int64_t
*
wchars
)
{
// FILE *fp = fopen(tsProcIOFile, "r");
TdFilePtr
pFile
=
taosOpenFile
(
tsProcIOFile
,
TD_FILE_READ
|
TD_FILE_STREAM
);
if
(
pFile
==
NULL
)
{
//printf("open file:%s failed", tsProcIOFile);
return
false
;
//
printf("open file:%s failed", tsProcIOFile);
return
-
1
;
}
ssize_t
_bytes
=
0
;
char
*
line
=
NULL
;
char
*
line
=
NULL
;
char
tmp
[
10
];
int
readIndex
=
0
;
...
...
@@ -662,32 +661,32 @@ bool taosReadProcIO(int64_t *rchars, int64_t *wchars) {
if
(
readIndex
>=
2
)
break
;
}
if
(
line
!=
NULL
)
tfree
(
line
);
if
(
line
!=
NULL
)
tfree
(
line
);
taosCloseFile
(
&
pFile
);
if
(
readIndex
<
2
)
{
//printf("read file:%s failed", tsProcIOFile);
return
false
;
//
printf("read file:%s failed", tsProcIOFile);
return
-
1
;
}
return
true
;
return
0
;
}
bool
taosGetProcIO
(
float
*
readKB
,
float
*
writeKB
)
{
int32_t
taosGetProcIO
(
float
*
readKB
,
float
*
writeKB
)
{
static
int64_t
lastReadbyte
=
-
1
;
static
int64_t
lastWritebyte
=
-
1
;
int64_t
curReadbyte
=
0
;
int64_t
curWritebyte
=
0
;
if
(
!
taosReadProcIO
(
&
curReadbyte
,
&
curWritebyte
)
)
{
return
false
;
if
(
taosReadProcIO
(
&
curReadbyte
,
&
curWritebyte
)
!=
0
)
{
return
-
1
;
}
if
(
lastReadbyte
==
-
1
||
lastWritebyte
==
-
1
)
{
lastReadbyte
=
curReadbyte
;
lastWritebyte
=
curWritebyte
;
return
false
;
return
-
1
;
}
*
readKB
=
(
float
)((
double
)(
curReadbyte
-
lastReadbyte
)
/
1024
);
...
...
@@ -698,27 +697,23 @@ bool taosGetProcIO(float *readKB, float *writeKB) {
lastReadbyte
=
curReadbyte
;
lastWritebyte
=
curWritebyte
;
return
true
;
return
0
;
}
void
taosGetSystemInfo
()
{
taosGetProcInfos
();
tsNumOfCores
=
taosGetCpuCores
();
tsTotalMemoryMB
=
taosGetTotalMemory
();
taosGetCpuCores
(
&
tsNumOfCores
);
taosGetTotalMemory
(
&
tsTotalMemoryKB
);
float
tmp1
,
tmp2
;
taosGetSysMemory
(
&
tmp1
);
taosGetProcMemory
(
&
tmp2
);
taosGetBandSpeed
(
&
tmp1
);
taosGetCpuUsage
(
&
tmp1
,
&
tmp2
);
taosGetProcIO
(
&
tmp1
,
&
tmp2
);
}
void
taosKillSystem
()
{
// SIGINT
//printf("taosd will shut down soon");
//
printf("taosd will shut down soon");
kill
(
tsProcId
,
2
);
}
...
...
@@ -727,22 +722,22 @@ int taosSystem(const char *cmd) {
int
res
;
char
buf
[
1024
];
if
(
cmd
==
NULL
)
{
//printf("taosSystem cmd is NULL!");
//
printf("taosSystem cmd is NULL!");
return
-
1
;
}
if
((
fp
=
popen
(
cmd
,
"r"
))
==
NULL
)
{
//printf("popen cmd:%s error: %s", cmd, strerror(errno));
//
printf("popen cmd:%s error: %s", cmd, strerror(errno));
return
-
1
;
}
else
{
while
(
fgets
(
buf
,
sizeof
(
buf
),
fp
))
{
//printf("popen result:%s", buf);
//
printf("popen result:%s", buf);
}
if
((
res
=
pclose
(
fp
))
==
-
1
)
{
//printf("close popen file pointer fp error!");
//
printf("close popen file pointer fp error!");
}
else
{
//printf("popen res is :%d", res);
//
printf("popen res is :%d", res);
}
return
res
;
...
...
@@ -757,14 +752,14 @@ void taosSetCoreDump(bool enable) {
struct
rlimit
rlim_new
;
if
(
getrlimit
(
RLIMIT_CORE
,
&
rlim
)
==
0
)
{
#ifndef _ALPINE
//printf("the old unlimited para: rlim_cur=%" PRIu64 ", rlim_max=%" PRIu64, rlim.rlim_cur, rlim.rlim_max);
//
printf("the old unlimited para: rlim_cur=%" PRIu64 ", rlim_max=%" PRIu64, rlim.rlim_cur, rlim.rlim_max);
#else
//printf("the old unlimited para: rlim_cur=%llu, rlim_max=%llu", rlim.rlim_cur, rlim.rlim_max);
//
printf("the old unlimited para: rlim_cur=%llu, rlim_max=%llu", rlim.rlim_cur, rlim.rlim_max);
#endif
rlim_new
.
rlim_cur
=
RLIM_INFINITY
;
rlim_new
.
rlim_max
=
RLIM_INFINITY
;
if
(
setrlimit
(
RLIMIT_CORE
,
&
rlim_new
)
!=
0
)
{
//printf("set unlimited fail, error: %s", strerror(errno));
//
printf("set unlimited fail, error: %s", strerror(errno));
rlim_new
.
rlim_cur
=
rlim
.
rlim_max
;
rlim_new
.
rlim_max
=
rlim
.
rlim_max
;
(
void
)
setrlimit
(
RLIMIT_CORE
,
&
rlim_new
);
...
...
@@ -773,9 +768,9 @@ void taosSetCoreDump(bool enable) {
if
(
getrlimit
(
RLIMIT_CORE
,
&
rlim
)
==
0
)
{
#ifndef _ALPINE
//printf("the new unlimited para: rlim_cur=%" PRIu64 ", rlim_max=%" PRIu64, rlim.rlim_cur, rlim.rlim_max);
//
printf("the new unlimited para: rlim_cur=%" PRIu64 ", rlim_max=%" PRIu64, rlim.rlim_cur, rlim.rlim_max);
#else
//printf("the new unlimited para: rlim_cur=%llu, rlim_max=%llu", rlim.rlim_cur, rlim.rlim_max);
//
printf("the new unlimited para: rlim_cur=%llu, rlim_max=%llu", rlim.rlim_cur, rlim.rlim_max);
#endif
}
...
...
@@ -801,10 +796,10 @@ void taosSetCoreDump(bool enable) {
old_len
=
sizeof
(
old_usespid
);
if
(
syscall
(
SYS__sysctl
,
&
args
)
==
-
1
)
{
//printf("_sysctl(kern_core_uses_pid) set fail: %s", strerror(errno));
//
printf("_sysctl(kern_core_uses_pid) set fail: %s", strerror(errno));
}
//printf("The old core_uses_pid[%" PRIu64 "]: %d", old_len, old_usespid);
//
printf("The old core_uses_pid[%" PRIu64 "]: %d", old_len, old_usespid);
old_usespid
=
0
;
old_len
=
0
;
...
...
@@ -817,10 +812,10 @@ void taosSetCoreDump(bool enable) {
old_len
=
sizeof
(
old_usespid
);
if
(
syscall
(
SYS__sysctl
,
&
args
)
==
-
1
)
{
//printf("_sysctl(kern_core_uses_pid) get fail: %s", strerror(errno));
//
printf("_sysctl(kern_core_uses_pid) get fail: %s", strerror(errno));
}
//printf("The new core_uses_pid[%" PRIu64 "]: %d", old_len, old_usespid);
//
printf("The new core_uses_pid[%" PRIu64 "]: %d", old_len, old_usespid);
#endif
}
...
...
@@ -885,7 +880,7 @@ SysNameInfo taosGetSysNameInfo() {
return
info
;
}
bool
taosGetEmail
(
char
*
email
,
int32_t
maxLen
)
{
int32_t
taosGetEmail
(
char
*
email
,
int32_t
maxLen
)
{
const
char
*
filepath
=
"/usr/local/taos/email"
;
TdFilePtr
pFile
=
taosOpenFile
(
filepath
,
TD_FILE_READ
);
...
...
@@ -893,17 +888,17 @@ bool taosGetEmail(char *email, int32_t maxLen) {
if
(
taosReadFile
(
pFile
,
(
void
*
)
email
,
maxLen
)
<
0
)
{
taosCloseFile
(
&
pFile
);
return
false
;
return
-
1
;
}
taosCloseFile
(
&
pFile
);
return
true
;
return
0
;
}
bool
taosGetOsReleaseName
(
char
*
releaseName
,
int32_t
maxLen
)
{
char
*
line
=
NULL
;
size_t
size
=
0
;
bool
ret
=
false
;
int32_t
taosGetOsReleaseName
(
char
*
releaseName
,
int32_t
maxLen
)
{
char
*
line
=
NULL
;
size_t
size
=
0
;
int32_t
code
=
-
1
;
TdFilePtr
pFile
=
taosOpenFile
(
"/etc/os-release"
,
TD_FILE_READ
|
TD_FILE_STREAM
);
if
(
pFile
==
NULL
)
return
false
;
...
...
@@ -917,21 +912,21 @@ bool taosGetOsReleaseName(char *releaseName, int32_t maxLen) {
line
[
size
-
2
]
=
0
;
}
tstrncpy
(
releaseName
,
p
,
maxLen
);
ret
=
true
;
code
=
0
;
break
;
}
}
if
(
line
!=
NULL
)
free
(
line
);
taosCloseFile
(
&
pFile
);
return
ret
;
return
code
;
}
bool
taosGetCpuInfo
(
char
*
cpuModel
,
int32_t
maxLen
,
int32_
t
*
numOfCores
)
{
int32_t
taosGetCpuInfo
(
char
*
cpuModel
,
int32_t
maxLen
,
floa
t
*
numOfCores
)
{
char
*
line
=
NULL
;
size_t
size
=
0
;
int32_t
done
=
0
;
bool
ret
=
false
;
int32_t
code
=
-
1
;
TdFilePtr
pFile
=
taosOpenFile
(
"/proc/cpuinfo"
,
TD_FILE_READ
|
TD_FILE_STREAM
);
if
(
pFile
==
NULL
)
return
false
;
...
...
@@ -941,11 +936,11 @@ bool taosGetCpuInfo(char *cpuModel, int32_t maxLen, int32_t *numOfCores) {
if
(((
done
&
1
)
==
0
)
&&
strncmp
(
line
,
"model name"
,
10
)
==
0
)
{
const
char
*
v
=
strchr
(
line
,
':'
)
+
2
;
tstrncpy
(
cpuModel
,
v
,
maxLen
);
ret
=
true
;
code
=
0
;
done
|=
1
;
}
else
if
(((
done
&
2
)
==
0
)
&&
strncmp
(
line
,
"cpu cores"
,
9
)
==
0
)
{
const
char
*
v
=
strchr
(
line
,
':'
)
+
2
;
*
numOfCores
=
ato
i
(
v
);
*
numOfCores
=
ato
f
(
v
);
done
|=
2
;
}
}
...
...
@@ -953,31 +948,7 @@ bool taosGetCpuInfo(char *cpuModel, int32_t maxLen, int32_t *numOfCores) {
if
(
line
!=
NULL
)
free
(
line
);
taosCloseFile
(
&
pFile
);
return
ret
;
}
bool
taosGetTotalSysMemoryKB
(
uint64_t
*
kb
)
{
char
*
line
=
NULL
;
size_t
size
=
0
;
bool
ret
=
false
;
TdFilePtr
pFile
=
taosOpenFile
(
"/proc/meminfo"
,
TD_FILE_READ
|
TD_FILE_STREAM
);
if
(
pFile
==
NULL
)
return
false
;
while
((
size
=
taosGetLineFile
(
pFile
,
&
line
))
!=
-
1
)
{
line
[
size
-
1
]
=
'\0'
;
if
(
strncmp
(
line
,
"MemTotal"
,
8
)
==
0
)
{
const
char
*
p
=
strchr
(
line
,
':'
)
+
1
;
while
(
*
p
==
' '
)
p
++
;
ret
=
true
;
*
kb
=
atoll
(
p
);
break
;
}
}
if
(
line
!=
NULL
)
free
(
line
);
taosCloseFile
(
&
pFile
);
return
ret
;
return
code
;
}
#endif
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录