Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
redis
Commits
85a1b4f8
Commit
85a1b4f8
authored
Jul 19, 2018
by
antirez
Browse files
clientsCronTrackExpansiveClients() actual implementation.
parent
d4c5fc57
Changes
1
Hide whitespace changes
Inline
Side-by-side
src/server.c
View file @
85a1b4f8
...
@@ -897,13 +897,26 @@ int clientsCronResizeQueryBuffer(client *c) {
...
@@ -897,13 +897,26 @@ int clientsCronResizeQueryBuffer(client *c) {
*
*
* When we want to know what was recently the peak memory usage, we just scan
* When we want to know what was recently the peak memory usage, we just scan
* such few slots searching for the maximum value. */
* such few slots searching for the maximum value. */
#define CLIENTS_PEAK_MEM_USAGE_SLOTS
10
#define CLIENTS_PEAK_MEM_USAGE_SLOTS
8
size_t
ClientsPeakMemInput
[
CLIENTS_PEAK_MEM_USAGE_SLOTS
];
size_t
ClientsPeakMemInput
[
CLIENTS_PEAK_MEM_USAGE_SLOTS
];
size_t
ClientsPeakMemOutput
[
CLIENTS_PEAK_MEM_USAGE_SLOTS
];
size_t
ClientsPeakMemOutput
[
CLIENTS_PEAK_MEM_USAGE_SLOTS
];
int
clientsCronTrackExpansiveClients
(
client
*
c
)
{
int
clientsCronTrackExpansiveClients
(
client
*
c
)
{
size_t
in_usage
=
sdsAllocSize
(
c
->
querybuf
);
size_t
in_usage
=
sdsAllocSize
(
c
->
querybuf
);
size_t
out_usage
=
getClientOutputBufferMemoryUsage
(
c
);
size_t
out_usage
=
getClientOutputBufferMemoryUsage
(
c
);
int
i
=
server
.
unixtime
%
CLIENTS_PEAK_MEM_USAGE_SLOTS
;
int
j
=
(
i
+
1
)
%
CLIENTS_PEAK_MEM_USAGE_SLOTS
;
/* Always zero the next sample, so that when we switch to that second, we'll
* only register samples that are greater in that second without considering
* the history of such slot. */
ClientsPeakMemInput
[
j
]
=
0
;
ClientsPeakMemOutput
[
j
]
=
0
;
/* Track the biggest values observed so far in this slot. */
if
(
in_usage
>
ClientsPeakMemInput
[
i
])
ClientsPeakMemInput
[
i
]
=
in_usage
;
if
(
out_usage
>
ClientsPeakMemOutput
[
i
])
ClientsPeakMemOutput
[
i
]
=
out_usage
;
return
0
;
/* This function never terminates the client. */
return
0
;
/* This function never terminates the client. */
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment