/ proc / [pid] / สถานะใช้ kB เสมอหรือไม่


10

โดยเฉพาะอย่างยิ่งprocจะแสดงรายการค่า VmRSS ในทุกครั้งkBหรือไม่ ฉันไม่พบคำตอบที่ชัดเจนในเอกสารแม้ว่ามันจะปรากฏว่ามันติดอยู่กับหนึ่งหน่วย

คำตอบ:


10

ใช่มันเป็น kB เสมอ KiB (1024- ไบต์ไม่ใช่ 1,000) ให้แน่นอน

อย่างน้อยก็ในลินุกซ์ 4.0 (และรหัสนี้ได้รับส่วนใหญ่ไม่เปลี่ยนแปลงอย่างน้อยตั้งแต่เมษายน 2005 ที่เมื่อ Linus เปลี่ยนไปgitและผมก็ไม่สนใจที่จะกลับมาตรวจสอบต่อไป) ที่ส่งออกมาจากในtask_mem fs/proc/task_mmu.cตัดตอนมาไม่กี่บรรทัด:

seq_printf(m,
    "VmPeak:\t%8lu kB\n"
    "VmSize:\t%8lu kB\n"
    "VmLck:\t%8lu kB\n"
    "VmPin:\t%8lu kB\n"
    "VmHWM:\t%8lu kB\n"
    "VmRSS:\t%8lu kB\n"
    "VmData:\t%8lu kB\n"
    "VmStk:\t%8lu kB\n"
    "VmExe:\t%8lu kB\n"
    "VmLib:\t%8lu kB\n"
    "VmPTE:\t%8lu kB\n"
    "VmPMD:\t%8lu kB\n"
    "VmSwap:\t%8lu kB\n",
    hiwater_vm << (PAGE_SHIFT-10),
    
);

ไม่แน่ใจว่าคุณสามารถอ่าน C ได้หรือไม่ แต่ "kB" นั้นเป็นฮาร์ดโค้ดที่นั่น ไม่มีตรรกะในการส่งออกหน่วยอื่นใด


ถือเหมือนกัน/proc/meminfoหรือไม่ man 5 procไม่ชัดเจนตรงนี้
olejorgenb

1
@olejorgenb ครับนั่นเป็นรหัสที่แข็งเหมือน kB เช่นกัน fs/proc/meminfo.cดูใน (และโปรดส่งแพตช์ไปที่ manpage เพื่อชี้แจง)
derobert
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.