For checking the error of memory.stale_page_age, I looked around the flow of creating a container, taking memory 100M for a example.
The flow is very clear from command respond to derived handler work.
HandleCommand | ||||||||||||||||||||||||||||||
RegisterCommands | ||||||||||||||||||||||||||||||
RegisterCreateCommand | ||||||||||||||||||||||||||||||
CreateContainer(const vector<string> &argv, const ContainerApi *lmctfy,vector<OutputMap> *output) | ||||||||||||||||||||||||||||||
RunCommand(const vector<string> &args, OutputMap::Style output_style, ContainerApiFactory *lmctfy_factory) | ||||||||||||||||||||||||||||||
ContainerApiImpl | ContainerApi | |||||||||||||||||||||||||||||
std::map<ResourceType, ResourceHandlerFactory *> resource_factories_ | ||||||||||||||||||||||||||||||
Create(StringPiece container_name, const ContainerSpec &spec) | ||||||||||||||||||||||||||||||
type_handler_pair.second->Create(resolved_name, spec) | ||||||||||||||||||||||||||||||
CgroupResourceHandlerFactory | ResourceHandlerFactory | |||||||||||||||||||||||||||||
Create(const string &container_name,const ContainerSpec &spec) | ||||||||||||||||||||||||||||||
CgroupResourceHandler | ResourceHandler | |||||||||||||||||||||||||||||
CreateResource(const ContainerSpec &spec) | ||||||||||||||||||||||||||||||
MemoryResourceHandler | CgroupResourceHandler | |||||||||||||||||||||||||||||
CreateOnlySetup(const ContainerSpec &spec) | ||||||||||||||||||||||||||||||
memory_controller_->SetStalePageAge(1); | ||||||||||||||||||||||||||||||
SetParamInt(KernelFiles::Memory::kStalePageAge, scan_cycles) | ||||||||||||||||||||||||||||||
SetParamString(cgroup_file, Substitute("$0", value)) | ||||||||||||||||||||||||||||||
WriteStringToFile(file_path, value) | ||||||||||||||||||||||||||||||
const char KernelFiles::Memory::kStalePageAge[] = "memory.stale_page_age"; |
版权声明:欢迎交流 ,转载请注明作者及出处。自由转载-非商用-非衍生-保持署名|Creative Commons BY-NC-ND 3.0