For Ubuntu 20.04, I use mmap map a disk file(about 4G).
The file changed by day, so I have to mmap another file day by day.
And I found sometimes(not always), the disk read increase fast although mmap done.
Why the mmap not load all the file to memory?
Why mmap still increase disk read?
170 Views Asked by DinoStray At
1
There are 1 best solutions below
Related Questions in LINUX
- How do I recursively find and replace only in files named index.php on Linux webserver?
- passing text with \n as one argument in shell
- kernel module does not print packet info
- How to send ESC/POS commands to thermal printer in Linux
- (x64 Nasm) Writeline function on Linux
- How do I set the Hive user to something different than the Spark user from within a Spark program?
- Default priority of thread with SCHED_FIFO
- Calling a python function with options from shell script
- How to split a directory into parts without compressing or archiving?
- Cross compile simple standard C program on Linux for Mac
- How to offload NAPI poll function to workqueue
- python netifaces - How to get currently used network interface
- Unexpected output from function
- mingw-64 conflicting declarations when cross-compiling
- Different behavior of async with Visual Studio 2013(Windows8.1) and GCC 4.9(Ubuntu14.10)
Related Questions in MEMORY
- DataTable does not release memory
- Impala Resource Estimation for queries with Group by
- Is there any way to get a lru list in Linux kernel?
- C# console application - Unhandled exception while finding the Available and free Ram space.Getting exact answer in windows forms application
- Allowed memory size of 134217728 bytes exhausted (tried to allocate 32 bytes) in PHP
- C# equivalent of Java Memory mapping methods
- How to figure out the optimal fetch size for the select query
- Creating two arrays with malloc on the same line
- Using parse.com and having allocation memory issue
- error reading variable: cannot access memory at address
- CentOS memory availability
- Correct idiom for freeing repr(C) structs using Drop trait
- Find Ram/Memory manufacturer in Linux?
- Profiling memory usage on App Engine
- Access Violation: 0xC0000005, why is this happening?
Related Questions in LINUX-KERNEL
- kernel module does not print packet info
- android linux kernel communicate with user space about NETLINK_USER
- How to offload NAPI poll function to workqueue
- Why Device Tree Structure (DTS) file is needed both in bootloader and kernel source code?
- Bootloader in Assembly with Linux kernel
- pktgen not sending packets more than 1kb big
- Use static analysis tools to check null pointers and memory leaks in Linux device drivers
- How to build Linux kernel to support SO_ATTACH_BPF socket option?
- How do I know the last sched time of a process
- linux kernel compile error....udevd[63]: error getting socket
- Process in background mode trying to read from stdin
- board firmware update through uefi capsule feature from Linux
- spin_lock before writing status register
- Kernel module configuration locked built in?
- Install Subversion 1.7 on Debian jessie
Related Questions in UBUNTU-20.04
- Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? (Ubuntu 20.04 ,WSL2)
- JAVA_HOME path for ant run command
- Ubuntu 20.04.1 LTS: ERROR: Could not find 'wxe_driver.so'
- Flask apache2 wsgi error after upgrading to ubuntu 20.04 from 18.04
- How to get current CPU usage with Linux Kernel Module?
- CMake Ubuntu set soname for shared object
- C++ VSCode Cannot convert '(classname)' to 'int'
- Missing ocamlrun after having installed Ocaml
- How Should I install Django on Ubuntu 20.04 LTS
- Hash sum mismatch when apt-get update Ubuntu 20.04 VM with Multipass
- How to fix virt-install error on Ubuntu 20.04 Hosts?
- Why Night Light not working in Ubuntu 20.04?
- cannot open source file "begin_code.h" (dependency of "SDL2/SDL.h")
- LoadError: MySQL2 gem issue with incorrect libmysqlclient.so.20 version on Ubuntu LTS 20.04
- Compilation fails with "relocation R_X86_64_32 against '.rodata' can not be used when making a PIE object; recompile with -fPIE
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
In order to understand the problem, fistly you need to understand what happened if you call
mmap().mmap()can be used to map virtual memory to physical memory, and it can also map file to own virtual memory. The function stack is likeksys_mmap_pgoff()->vm_mmap_pgoff()->do_mmap_pgoff()->do_mmap(). After this, we will construct the user space memory map, but it only apply a new area in the virtual memory, we haven't touched the physical memory. When processes schedule to this process and we want to address this physical memory, then it triggers page fault interrupt and calldo_page_fault()->find_vma()->handle_mm_fault()to really get in touch with physical memory, for different file system we will use different function likeext3_filemap_fault().Now let's get back into the question.
mmap()will cause disk read, but we cannot be sure when it will happen. It depends on when you used it and when CPU schedule to this process.What's more, if you use
freeor other tools, you will find Linux OS have a design namedBufferandCache.This mechanism will help to accelecrate I/O read/write speed, and it may also cause the disk read increase when you use
mmap().