mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-07 23:56:57 +02:00
OPTIM: halog: improve cold-cache behaviour when loading a file
Using posix_fadvise() it is possible to tell the system that we're going to read a whole file at once. The kernel then doubles the read-ahead size for this file. On Linux with an SSD, this has improved cold-cache performance by around 20%. Hot-cache is not affected at all.
This commit is contained in:
parent
419a598eae
commit
f8c95d2a25
@ -672,6 +672,15 @@ int main(int argc, char **argv)
|
|||||||
else if (filter & FILT_COUNT_ONLY)
|
else if (filter & FILT_COUNT_ONLY)
|
||||||
line_filter = NULL;
|
line_filter = NULL;
|
||||||
|
|
||||||
|
#if defined(POSIX_FADV_SEQUENTIAL)
|
||||||
|
/* around 20% performance improvement is observed on Linux with this
|
||||||
|
* on cold-cache. Surprizingly, WILLNEED is less performant. Don't
|
||||||
|
* use NOREUSE as it flushes the cache and prevents easy data
|
||||||
|
* manipulation on logs!
|
||||||
|
*/
|
||||||
|
posix_fadvise(0, 0, 0, POSIX_FADV_SEQUENTIAL);
|
||||||
|
#endif
|
||||||
|
|
||||||
if (!line_filter &&
|
if (!line_filter &&
|
||||||
!(filter & (FILT_HTTP_ONLY|FILT_TIME_RESP|FILT_ERRORS_ONLY|FILT_HTTP_STATUS|FILT_QUEUE_ONLY|FILT_QUEUE_SRV_ONLY|FILT_TERM_CODE_NAME))) {
|
!(filter & (FILT_HTTP_ONLY|FILT_TIME_RESP|FILT_ERRORS_ONLY|FILT_HTTP_STATUS|FILT_QUEUE_ONLY|FILT_QUEUE_SRV_ONLY|FILT_TERM_CODE_NAME))) {
|
||||||
/* read the whole file at once first */
|
/* read the whole file at once first */
|
||||||
|
Loading…
Reference in New Issue
Block a user