คำถามติดแท็ก cache

แคชเป็นส่วนประกอบที่เก็บข้อมูลเพื่อให้คำขอในอนาคตสำหรับข้อมูลนั้นสามารถให้บริการได้เร็วขึ้น ข้อมูลที่เก็บไว้ในแคชอาจเป็นผลลัพธ์ของการคำนวณก่อนหน้านี้หรือข้อมูลที่เก็บไว้ที่อื่นซ้ำซ้อน

1
เหตุใดวัตถุพื้นจึงไม่เรียกคืนโดยอัตโนมัติ
อัปเดต : ฉันไม่พบปัญหานี้ใน 4.9 อีกต่อไป * ไม่แน่ใจว่าเมื่อใดที่ได้รับการแก้ไข ทุกวันหลังจากการสำรองข้อมูลเต็มระบบโปรแกรมต่าง ๆ ล้มเหลวพร้อมข้อผิดพลาดในการอ่านจนกว่าฉันecho 2 > /proc/sys/vm/drop_cachesจะรันเพื่อเรียกคืนออบเจ็กต์แผ่นพื้นที่เรียกคืนได้ฟรี ตัวอย่างเช่นนี่คือผลลัพธ์ของsudo apt-get updateหลังจากการสำรองข้อมูล $ sudo apt-get update Hit http://ftp.ca.debian.org unstable InRelease Hit http://ftp.ca.debian.org experimental InRelease Ign http://dl.google.com stable InRelease Get:1 http://ftp.ca.debian.org unstable/contrib amd64 Packages/DiffIndex [7,819 B] Hit http://dl.google.com stable Release.gpg Hit http://ppa.launchpad.net wily InRelease Get:2 http://ftp.ca.debian.org unstable/non-free …


3
จะเกิดอะไรขึ้นเมื่อไฟล์ที่เพจได้ 100% ในเพจแคชได้รับการแก้ไขโดยกระบวนการอื่น
ฉันรู้ว่าเมื่อมีการแก้ไขหน้าแคชหน้ามันมีการทำเครื่องหมายสกปรกและต้องมีการเขียนกลับ แต่สิ่งที่เกิดขึ้นเมื่อ สถานการณ์จำลอง: ไฟล์ / apps / EXE ซึ่งเป็นไฟล์ที่เรียกทำงานได้ถูกทำเพจไว้ในแคชของเพจอย่างสมบูรณ์ (เพจทั้งหมดอยู่ในแคช / หน่วยความจำ) และถูกดำเนินการโดยกระบวนการ P ปล่อยอย่างต่อเนื่องแล้วแทนที่ / apps / EXE ด้วยปฏิบัติการใหม่ล่าสุด ข้อสันนิษฐานที่ 1: ฉันถือว่ากระบวนการ P (และทุกคนที่มีตัวอธิบายไฟล์ที่อ้างอิงถึงไฟล์ปฏิบัติการเก่า) จะยังคงใช้ไฟล์เก่าต่อไปในหน่วยความจำ / แอป / EXE โดยไม่มีปัญหาและกระบวนการใหม่ที่พยายามเรียกใช้เส้นทางนั้น ปฏิบัติการใหม่ ข้อสันนิษฐานที่ 2: ฉันสมมติว่าหากไม่มีการแมปหน้าไฟล์ทั้งหมดในหน่วยความจำสิ่งต่าง ๆ ก็จะถูกต้องจนกว่าจะมีข้อผิดพลาดของหน้าซึ่งต้องใช้หน้าจากไฟล์ที่ถูกแทนที่และอาจเป็น segfault หรือไม่ คำถามที่ 1: ถ้าคุณ mlock ทุกหน้าของไฟล์ด้วย vmtouch สิ่งนั้นเปลี่ยนแปลงสถานการณ์ได้หรือไม่? คำถามที่ 2: หาก / …

1
วิธีการกำหนดค่า Linux เพื่อแคชข้อมูลเมตาของไฟล์ในการตั้งค่าเนื้อหา?
ฉันต้องการตั้งค่าระบบให้ใช้ RAM ส่วนใหญ่สำหรับการแคชเมตะดาต้าของระบบไฟล์ แต่มีจำนวนน้อยพอสมควรสำหรับการอ่าน / เขียนแคชและไฟล์ดึงข้อมูลล่วงหน้า เป็นการดีที่ฉันจะสามารถเรียกดูระบบไฟล์ (เท่าที่เหมาะกับ RAM) โดยไม่ต้องหมุนดิสก์จนกว่าฉันจะเปิดไฟล์จริง นี่คือรายละเอียด: ฉันมีไฟล์เซิร์ฟเวอร์ที่ทำที่บ้าน มันมีดิสก์ห้าตัวในปริมาณ LVM ประมาณ 9TB แต่ RAM 4GB เท่านั้น เนื่องจากเซิร์ฟเวอร์ไม่ทำอะไรมากแล้วให้บริการไฟล์ RAM ส่วนใหญ่จึงใช้สำหรับการแคช (“ ฟรี” รายงาน 3.4G จาก 3.9G ที่ใช้สำหรับแคช) เซิร์ฟเวอร์อาศัยอยู่ในห้องนอนของฉันและหากดิสก์ทั้งหมดหมุนไปมันจะมีเสียงดังพอที่จะน่ารำคาญเมื่อมันเงียบ (ฉันไม่ได้หมายถึงการค้นหาเสียงรบกวนเพียงแค่การหมุนเท่านั้นเสียงดิสก์มีหลายยี่ห้อและรุ่นต่าง ๆ และฉันคิดว่าความแตกต่างเล็กน้อยในความเร็วการหมุนทำให้เกิดการรบกวนไม่มีดิสก์ตัวใดมีเสียงดังด้วยตัวเอง มีเสียงรบกวนเล็กน้อยกับช่วงเวลาย่อยเฮิรตซ์) ดังนั้นฉันจึงกำหนดค่าเซิร์ฟเวอร์ให้ดิสก์หมุนวนเป็นส่วนใหญ่ แน่นอนหากดิสก์หมุนตัวเมื่อฉันเปิดโฟลเดอร์ในตัวจัดการไฟล์ของฉันมีความล่าช้าในขณะที่ดิสก์ใดมีโฟลเดอร์นั้นหมุนขึ้น เพียงแค่นั้นไม่ใช่เรื่องใหญ่ แต่ขึ้นอยู่กับที่ฉันมองมันอาจเกิดขึ้นหลายครั้งในแถวถ้า LVM เกิดขึ้นเพื่อกระจายข้อมูลเมตาสำหรับแต่ละโฟลเดอร์ย่อยบนดิสก์ที่แตกต่างกัน ฉันสงสัยว่า Linux ส่วนใหญ่เติมแคชด้วยเนื้อหาไฟล์และอาจมีการดึงข้อมูลล่วงหน้า การแคชไม่มีประโยชน์มากเกินกว่าสองสาม MB เพื่อให้เล่นได้อย่างราบรื่น ถ้าฉันเพิ่งดูหนังฉันอาจจะไม่ได้ดูอีกครั้งในไม่ช้า การดึงข้อมูลล่วงหน้าหากเกิดขึ้นก็ไม่ได้ผลอย่างสมบูรณ์ในกรณีของฉันหลังจากผ่านไปไม่กี่ MB …

2
เหตุใด Linux จึงล้างแคชหน่วยความจำเมื่อเกือบเต็มแล้ว
นี่คือรูปกราฟหน่วยความจำบน VPS ที่รัน CentOS พร้อม RAM ขนาด 512MB และ nginx / php-fpm / mysqld ที่แสดงเนื้อหา (ส่วนใหญ่เป็นแบบคงที่) ต่อผู้เข้าชมสองพันคนต่อวัน (นั่นคือวันบนแกน x) อย่างที่คุณเห็นมันค่อนข้างน่ากลัวในพื้นที่แคชและบัฟเฟอร์ แคชหน่วยความจำถูกกำจัดในช่วงเวลาที่ไม่สม่ำเสมอ (พิจารณางาน cron ที่รับผิดชอบ) มันมักจะถูกกวาดล้างไปยังจุดที่ไม่สามารถเติบโตได้ บางครั้งก็ล้างเกือบทั้งหมดในบางครั้งบางครั้งลงครึ่งหนึ่งเท่านั้น ฉันพยายามที่จะเข้าใจตรรกะที่อยู่เบื้องหลังการล้างเหล่านี้ ฉันคาดว่าข้อมูลไฟล์จะถูกแคชนานกว่า & ไม่เห็นโปรแกรมอื่น ๆ ที่ใช้หน่วยความจำมากกว่าปกติเมื่อล้างแคชหน่วยความจำ นี่เป็นพฤติกรรมปกติหรือฉันขาดอะไรไป? UPDATE: การอัพเกรดหน่วยความจำดูเหมือนว่าจะทำให้กราฟเสถียร ยังคงเห็นหยดเล็ก ๆ แต่ไม่มีอะไรสำคัญเท่าก่อนการอัพเกรด
14 linux  memory  cache 

1
lshw และ lscpu ไม่เห็นด้วยกับแคช - ซึ่งถูกต้อง?
ฉันพยายามที่จะหาข้อมูลเฉพาะเกี่ยวกับแคช (โดยเฉพาะอย่างยิ่งที่มีการใช้แคชร่วมกันระหว่างแกนและที่ไม่ได้) และมีการย้ำความไม่ลงรอยกัน sudo lshw กล่าวว่า *-cache:0 description: L1 cache physical id: a slot: Internal Cache size: 64KiB capacity: 64KiB capabilities: synchronous internal write-back *-cache:1 description: L2 cache physical id: b slot: External Cache size: 8MiB capabilities: synchronous internal write-back แต่การlscpuเรียกร้อง L1d cache: 32K L1i cache: 32K L2 cache: 256K …

3
มีคำสั่งที่จะบังคับให้ Linux ล้างแคชไฟล์หนึ่งไฟล์ในการแบ่งปัน NFS หรือไม่?
ที่เกี่ยวข้องกับคำถามนี้ใน StackOverflowฉันสงสัยว่ามีวิธีที่ฉันจะล้างแคช NFS / บังคับ Linux เพื่อดูสำเนาล่าสุดของไฟล์ที่อยู่ใน NFS แบ่งปัน ฉันมีสถานการณ์ที่เซิร์ฟเวอร์ Apache สี่ตัวเมานต์ไดเร็กทอรีเดียวกันผ่าน NFS และเมื่อเซิร์ฟเวอร์หนึ่งทำการเปลี่ยนแปลงไฟล์มันใช้เวลาประมาณ 5 - 10 วินาทีเพื่อให้เซิร์ฟเวอร์อื่น ๆ เห็นการเปลี่ยนแปลงนั้น หากมีการเปลี่ยนแปลงครั้งที่สองในไฟล์นั้นภายในหน้าต่างนี้มันอาจจะเขียนทับการเปลี่ยนแปลงครั้งแรก fstabรายการสำหรับระบบแฟ้มคือ: 172.16.1.15:/home /media/home nfs vers=3,defaults,noauto,sync,acregmin=1 0 0 มีคำสั่งที่จะบังคับให้ Linux ล้างแคชไฟล์หนึ่งไฟล์ในการแบ่งปัน NFS หรือไม่?
14 nfs  cache 

1
การปิดใช้งานอุปสรรคสำหรับ ext4 ปลอดภัยบนแล็ปท็อปที่มีแบตเตอรี่หรือไม่
หน้าคู่มือบอกเกี่ยวกับbarrierตัวเลือกสำหรับ ext4: อุปสรรคในการเขียนบังคับให้มีการสั่งบันทึกบนดิสก์ที่เหมาะสมของการทำเจอร์นัลทำให้การเขียนดิสก์ระเหยง่ายปลอดภัยในการใช้งานที่มีการปรับประสิทธิภาพบางอย่าง หากดิสก์ของคุณมีแบตเตอรี่สำรองในทางใดทางหนึ่งการปิดใช้งานสิ่งกีดขวางอาจช่วยปรับปรุงประสิทธิภาพได้อย่างปลอดภัย แล็ปท็อปที่มีแบตเตอรี่ (และ SSD) นับเป็นดิสก์ที่มีแบตเตอรี่สำรองหรือไม่ ดังนั้นbarrier=0สำหรับ ext4 จึงปลอดภัยสำหรับแล็ปท็อปหรือไม่?

2
30% ของ RAM คือ“ บัฟเฟอร์” มันคืออะไร?
$ free -h total used free shared buff/cache available Mem: 501M 146M 19M 9.7M 335M 331M Swap: 1.0G 85M 938M $ free -w -h total used free shared buffers cache available Mem: 501M 146M 19M 9.7M 155M 180M 331M Swap: 1.0G 85M 938M ฉันจะอธิบายหรืออธิบาย "บัฟเฟอร์" ในผลลัพธ์ของได้freeอย่างไร ฉันไม่มีปัญหา (รู้) กับระบบนี้ ฉันประหลาดใจและอยากรู้อยากเห็นว่า …
13 linux  memory  cache 

3
การล้างไฟล์ชั่วคราว ~ / .cache / ซ้ำ / temp ล้มเหลว
บ่อยครั้งเมื่อฉันเรียกใช้ Duplicity ฉันเห็นข้อความแสดงข้อผิดพลาดเช่นนี้เมื่อสิ้นสุดการเรียกใช้: Cleanup of temporary file /home/user/.cache/duplicity/9a169830d41477b2dbc3c5b32edd4e8a/duplicity-MEXhMY-tempdir/mktemp-StAkzj-1 failed ไดเรกทอรีที่กล่าวถึงจะมีไฟล์สิบไฟล์หรือมากกว่านั้นซึ่งจะถูกลบในครั้งต่อไปที่ฉันเรียกใช้ Duplicity มีความคิดใดที่ทำให้บางครั้งล้มเหลวเมื่อเรียกใช้การสำรองข้อมูลเพิ่มเติม ฉันไม่ได้เห็นรูปแบบของตัวเองและมีโชคเล็กน้อยในการค้นหาผู้อื่นที่พูดถึงเรื่องเดียวกัน ผู้ชายบางคนในรายการส่งอีเมลบางครั้งเคยกล่าวว่าสถานที่ของเขาทำให้เกิดปัญหาซ้ำซ้อน ฉันลองเปลี่ยนจากภาษานอร์เวย์bokmålปกติเป็น en-US แต่ก็ยังเห็นปัญหาอยู่ นี่เป็นการดำเนินการปกติสำหรับ Duplicity หรือไม่ เห็นมันในสามระบบที่แตกต่าง: สอง Ubuntu 13.04 64- บิตเดสก์ท็อปและหนึ่ง Ubuntu Server 13.04 64- บิต

1
หน่วยความจำแบบ "แคช" ปราศจากความจริงหรือไม่
เมื่อทำงานcat /proc/meminfoคุณจะได้รับ 3 ค่าเหล่านี้ที่ด้านบน: MemTotal: 6291456 kB MemFree: 4038976 kB Cached: 1477948 kB เท่าที่ฉันรู้ค่า "แคช" คือดิสก์แคชที่ทำโดยระบบ Linux ที่จะถูกปล่อยทันทีหากแอปพลิเคชันใด ๆ ที่ต้องการ RAM เพิ่มขึ้นดังนั้น Linux จะไม่หมดหน่วยความจำจนกว่า MemFree และ Cache จะเป็นศูนย์ น่าเสียดายที่ "MemAvailable" ไม่มีการรายงานโดย / proc / meminfo อาจเป็นเพราะมันทำงานในเซิร์ฟเวอร์เสมือน (เวอร์ชั่นเคอร์เนลคือ 4.4) ดังนั้นสำหรับการใช้งานจริง RAM สำหรับแอปพลิเคชันนั้นเป็น MemFree มุมมองนั้นถูกต้องหรือไม่
11 linux  memory  cache  meminfo 

3
เพิ่มความเร็วในการคัดลอกไฟล์ขนาดเล็ก 1000000
ฉันมี 1000000 4-20 kb ไฟล์ใน dir ฉันต้องการคัดลอกผบ. แต่ดูเหมือนว่าฉันต้องทำการค้นหาไฟล์แต่ละไฟล์ดังนั้นจึงใช้เวลาค่อนข้างนาน มีวิธีใดบ้างที่ฉันจะเร่งความเร็วนี้? ฉันกำลังคิดว่าถ้าฉันสามารถรับบล็อกดิสก์ที่ไฟล์เหล่านี้ครอบครองฉันสามารถเรียงลำดับเหล่านั้นรวมบล็อกที่อยู่ใกล้ (เนื่องจากการอ่านตามลำดับมักจะเร็วกว่าการค้นหา) และอ่านบล็อกเหล่านี้เพื่อให้พวกเขาอยู่ใน RAM แคช (ฉันมี RAM 32 GB) ก่อนทำสำเนา แต่สำหรับการทำงานฉันต้องการวิธีที่จะระบุว่าบล็อกใดที่เปิดอยู่ ฉันใช้ EXT4 บนอุปกรณ์แม่เหล็ก (เช่นไม่ใช่ SSD) แก้ไข: สิ่งนี้ควรใช้งานได้ แต่ไม่ได้: ls | parallel -IOO --pipe "sudo parallel -j100 hdparm --fibmap {}'|tail -n +5'" | sort -nk 2 | perl -ane 'if($u+10000 < …

2
จะปิดแคช L1 และ L2 ของโปรเซสเซอร์ได้อย่างไร
เป็นไปได้ไหมที่จะปิดการใช้งานแคช L1 และ / หรือ L2 บน Ubuntu 14.04 (ควรเป็นภาษาระดับสูงกว่าเช่น Python)? ถ้าเป็นเช่นนั้นได้อย่างไร นอกจากนี้การปิดใช้งานแคชจะแตกต่างกันอย่างมีนัยสำคัญระหว่างสถาปัตยกรรมที่แตกต่างกันหรือไม่ ถ้าเป็นเช่นนั้นฉันสนใจ ARM Cortex-A15 มากกว่า แก้ไข ในขณะที่ค้นคว้าวิธีปิดการใช้งานแคชฉันพบเกี่ยวกับไฟล์ "drop_caches" ใน / proc / sys / vm / จากเอกสาร kernel.org "การเขียนสิ่งนี้จะทำให้เคอร์เนลวางแคชที่สะอาดรวมถึงวัตถุพื้นที่สามารถเรียกคืนได้เช่นเดนทิสและ inodes เมื่อถูกทิ้งหน่วยความจำจะว่าง ... "ไฟล์นี้ไม่ได้หมายถึงการควบคุมการเจริญเติบโตของแคชเคอร์เนลต่างๆ (inodes, dentries, pagecache, ฯลฯ ... ) วัตถุเหล่านี้จะถูกเรียกคืนโดยเคอร์เนลโดยอัตโนมัติเมื่อจำเป็นต้องใช้หน่วยความจำที่อื่นในระบบ" ดูเหมือนจะไม่เหมือนกับสิ่งที่ฉันกำลังมองหาเพราะไม่เพียง แต่ดูเหมือนว่ามันจะปิดการใช้งานแคชฉันคิดว่าหน่วยความจำเสมือนอยู่ในระบบปฏิบัติการไม่ใช่ในฮาร์ดแวร์ เป้าหมายของฉันคือปิดการใช้งานแคชดังนั้นจึงต้องค้นหาหน่วยความจำที่ต้องการที่อื่นเช่นภายใน RAM แก้ไข เพื่อชี้แจงฉันเข้าใจว่าการปิดใช้งานแคชจะทำอะไรกับระบบ อย่างไรก็ตามเป็นเทคนิคทั่วไปที่ใช้ในการใช้งานในพื้นที่เพื่อเพิ่มความน่าเชื่อถือสำหรับการใช้งานที่สำคัญด้านความปลอดภัย นี่คือแหล่งข้อมูลบางอย่างที่บันทึกปรากฏการณ์นี้: …
10 linux  ubuntu  python  arm  cache 

1
จะรู้ได้อย่างไรว่า dm-cache ถูกแคชไว้อย่างไร?
ฉันใช้ dm-cache เรียบร้อยแล้วพักหนึ่งแล้ว ตอนนี้ฉันอยากจะรู้ว่าไฟล์ใดที่อยู่ในแคช ฉันเข้าใจว่า dm-cache ใช้งานได้กับบล็อกไม่ใช่ไฟล์ แต่เนื่องจากมีระบบไฟล์ด้านบนจึงควรมีความเป็นไปได้ในทางทฤษฎีในการแปลไฟล์นี้เป็นส่วนต่างๆของแคช แน่นอนฉันสนใจโซลูชันที่ใช้งานได้จริง: ฉันจะแสดงรายการสิ่งที่อยู่ใน dm-cache ได้อย่างไร
10 linux  cache  ssd 


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.