עבור לתוכן

איך יוצרים ram disk באובונטו ומעבירים אליו את ה-cache של כרום?

Featured Replies

פורסם

אני עובד בלפטופ על כונן איטי (דיסק און קיי ;D ) והייתי רוצה לזרז עניינים.

יש לי 4GB RAM והייתי רוצה להקצות כמה מאוד מגה בייטים לטובת ה-cache של הדפדפן.

חיפשתי בגוגל ולא מצאתי איזה מדריך ברור איך להקצות ram drive או איך להעביר את ה-cache של chromium.

פורסם
  • מחבר

תודה.

אפשר הסבר לגבי כרום ולא פיירפוקס?

ובנוסף, פירוט של הפקודות, אני רוצה לדעת מה אני מבצע.

פורסם

פעולת ה mount :

נניח שמערכת ההפעלה שלך נמצאת במחיצה sda1 (ובתוכה התיקיות הרגילות dev home וכו). אתה חיברת למחשב USB שהוא sdb1 ואתה רוצה לפתוח ממנו קבצים / לכתוב אליו

הכונן sda1 הוא קובץ מערכת בתיקיה /dev (שהיא בעצמה תיקיה מיוחדת - הקרנל של לינוקס יוצר את התוכן שלה תוך כדיי שהוא עובד, חלק משמעותי ממנה זה לא באמת קבצים אל הדיסק וגם אלה שכן הם קבצים מיוחדים) - תיקיה שהקבצים בתוכה מסמלים התקני מערכת שונים - דיסקים, כרטיס רשת... והתקנים וירטואליים - קובץ אינסופי של אפסים, "חור שחור" שניתן לכתוב לתוכו דברים והם נעלמים וכו

לדיסק הקשיח שלך (sda) ול אחת מהמחיצות שלו (sda1 וכו) יש קבצי התקן בתיקיה /dev. אבל הקבצים האלה לבד לא נותנים גישה לתוכן של הכונן. בשביל זה אתה אמור _לחבר_ אותם לתיקיות במערכת קבצים שלך. כלומ, להפוך תיקיות ריקות רגילות לכמו "פורטלים" שבהם אתה עובר לכונן האחר

דוגמה ראשונה - המחיצה של מערכת ההפעלה שלך sda1 מחוברת כרגע לתיקיה "/" כלומר מה שאתה רואה ב / נמצא במחיצה

דוגמה שניה - אתה רוצה לפתוח את המחיצה sdb1 שנמצאת ב USB. נתחיל מזה שאתה מחבר את ה USB למחשב. הקרנל מזהה את ה USB שחיברת ואת המחיצה היחידה שיש בו ויוצר 2 קבצים מתאימים ב /dev - הם sdb ו sdb1. הם ייעלמו ברגע שתנתק את ה USB

כעת אנחנו ניצור את ה "פורטל" :

אתה יוצר תיקיה ריקה רגילה במחשב למשל /new_folder

התיקיה נמצאת במחיצה sda1 והיא ריקה

עכשו נבצע את ה mount - החיבור של sdb1 לתיקיה :

mount /dev/sdb1 /new_folder

עכשו שאתה נכנס ל new_folder במקום תיקיה ריקה יש בתוכה את כל מה שיש ב sdb1

פיזית ב sda1 עדיין יש תיקיה ריקה וכל מה שאתה רואה או כותב ל new_folder (שלא נראית לך ריקה עכשו...) הולך ל sdb1

עכשו מערכת ההפעלה לא תמיד כותבת דברים מיידית לדיסק אלא משהה דברים ב cache. כלומר יתכן שכתבת קובץ חדש ל new_folder. הקובץ אמור להיכתב ל sdb1 אבל מערכת ההפעלה מחזיקה אותו בינתיים ב RAM (אבל אתה כבר רואה אותו ב new_folder כיאלו שהוא כבר כתוב ל sdb1)

המטרה היא שאם יש הרבה פניות לאותו אזור במערכת קבצים, מערכת ההפעלה תצבור ותעשה אותן במכה אחת כדיי להקטין את כמות העבודה הפיזית של הדיסק וכך לשמור אל אורך חיים ארוך יותר שלו (פחות שחיקה) וביצועים טובים יותר (תבצע את הפעולות בסדר שבו זה הכי קל ולא בסדר שבו הפניות הגיעו למערכת ההפעלה)

לכן כדיי שתוכל להוציא את ה USB בצורה בטוחה עליך לוודא שכל מה שהיה אמור להיכתב אליו אכן נכתב סופית ולא תקוע ב cache. אתה נותן למערכת ההפעלה הוראה לרוקן את ה cache של הכונן הזה ולאחר מכן לנתק אותו מהתיקיה. ב Windows הפעולה נקראת "הוצאה בטוחה". בלינוקס unmount (הפקודה היא umount)

umount /new_folder

או

umount /dev/sdb1

(מערכת ההפעלה יודעת ש sdb1 מחובר ל new_folder ולכן כל אחת מהפקודות תעבוד). הפעולה יכולה לקחת זמן מסויים - זה הזמן שלוקח לכתוב את הכול מה cache לכונן. כשהיא תסתיים אתה תקבל שורת פקודה חדשה

ברגע שתנתק את ה mount אתה תישאר אם sda1 שמכיל תיקיה ריקה (ואת כל יתר התוכן הרגיל שלו) ו sdb1 שבו יש את כל מה שכתבת לתיקיה

בדרך כלל מערכת ההפעלה תזהה אוטומטית את מערכת הקבצים שיש ב sdb1 וכו' ולכן למשל בפקודת ה mount אתה לא כותב שמערכת הקבצים היא ntfs - אבל אתה יכול לתת למערכת ההפעלה ידנית את הסוג של מערכת הקבצים

זה שימושי למצבים שלינוקס יכול לזהות את מערכת הקבצים בכמה צורות. למשל את ntfs ניתן לזהות כ ntfs או כ ntfs-3g כשרק ntfs-3g תומך בצורה מלאה בכתיבה ל ntfs

לכן אם אתה רוצה לוודא שה USB יעבוד כ ntfs-3g (ולא סתם ntfs) אתה יכול לתת הוראה :

mount -t ntfs-3g /dev/sdb1 /new_folder

באותה צורה ניתן לתת מאפיינים אחרים לפקודת ה mount למשל מה הקידוד של שמות קבצים בעברית :

mount -t ntfs-3g -o nls=utf8 /dev/sdb1 /new_folder

תיאורטית ב ramdisk היית אמור ליצור בשבילו קובץ ב /dev/ ואז לעשות mount לתיקיה

במציאות יצירת ramdisk נעשית אל ידיי פקודת ה mount עצמה. מערכת ההפעלה מכירה מערכת קבצים וירטואלית בשם tmpfs וזה מערכת הקבצים שיש ב ramdiskים בלינוקס. כלומר אם אתה אומר למערכת ההפעלה שמערכת הקבצים הוא tmpfs וההתקן הוא tmpfs אז בכך יצרת ramdisk

לכן ההוראה ליצירת ramdisk (שכבר מחובר לתיקיה /new_folder) תהיה

mount -t tmpfs tmpfs /new_folder

עוד משהוא אתה רוצה לאמר למערכת מראש מה הגודל של ה ramdisk ואת זה אתה עושה באותה צורה כמו שמעבירים אפשרויות אחרות ל mount :

mount -t tmpfs -o size=512M tmpfs /new_folder

כדיי להשתמש אם זה לדפדפן תמצא מה התיקיות שבהם הוא שומר את התוכן שלו, ותכין מראש את התיקיות האלה כ tmpfs לפניי שאתה פותח את הדפדפן

מה שמצאתי לפיירפוקס עלה לי בתוצאות כשחיפשתי בגוגל using tmpfs - לא בדקתי לעומק אם יש מדריך דומה גם ל chromium - בכל מקרה יש שם הסבר של איך לסדר דבר כזה בצורה קבועה לפיירפוקס אם קובץ ה fstab

הקובץ fstab (File System TABle) קובע איזה mountים יתבצעו אוטומטית בכל פעם שהמחשב עולה + איזה mountים מערכת ההפעלה אמורה "להכיר" כך שלמשל תכתוב mount /new_folder ומערכת ההפעלה כבר תדע איזה מחיצה אתה רוצה שתתחבר לשם וכו

פורסם
  • מחבר

קצת סיבכת אותי.

כונן ה-USB הוא הכונן הראשי שלי. שם מותקן לי האובונטו, אין לי מערכת הפעלה אחרת.

אז למעשה כל תיקייה היא כמו קיצור דרך? פוינטר לאיזור מסויים במחיצה מסויימת?

בכל מקרה מצאתי את זה:

Chromium: $XDG_CACHE_HOME/chromium, which defaults to ~/.cache/chromiumIf you pass --user-data-dir=/path/to/foo, the cache will be under /path/to/foo.

אז מה בעצם אני צריך להקיש על מנת להקצות 512MB לקאש עבור התיקייה הזאת?

פורסם

במקרה שלך אם אין דיסק קשיח במחשב, ה USB של אובונטו יהיה sda (והמחיצות sda1 וכו), ה USB השני sdb....

אם יש דיסק קשיח אז הדיסק sda, ה USB של האובונטו sdb, ה USB השני שחיברת sdc וכן הלאה

מה שמשנה זה שכל דיסק וכל מחיצה מקבלים איזה שהוא קובץ ב /dev שניתן לעשות לו mount

כל תיקיה היא תיקיה. אל ידיי ביצוע mount אתה הופך אותה ל "קיצור דרך" (וזה עובד בצורה מלאה לגמרי כיאלו שהכול באמת נמצא בתיקיה - למשל ניתן לכתוב את המסלול לתוך התיקיה בצורה חופשית, להעתיק את כל התיקיה כולל התיקיה עצמה וכו. זה לא שהתיקיה הופכת לקובץ .lnk כמו של קיצור דרך לתוכנה בוינדוס)

בדוגמה שלך תבצע כ root :

mount -t tmpfs -o size=512M tmpfs /home/Gil28/.cache/chromium

chmod 777 /home/Gil28/.cache/chromium

יצור את כונן ה tmpfs על גבי התיקיה ~/.cache/chromium שבה chromium שומר בדרך כלל את התוכן שלו (אם מהתחלה התיקיה לא היתה ריקה, הפעולה הזאת "מחביאה" את התוכן המקורי מאחוריי ה ramdisk - זה לא הולך להפריע לך)

כמו כן כדיי שלמשתמש תהיה הרשאה מלאה לעבוד אם התיקיה (ההרשאה שניתנת למשתמש יכולה להיות מוגבלת בגלל שה mount בוצע אל ידיי root) משנים את הרשאות של התיקיה בהתאמה (ההרשאות 777 הן כמו everybody full control - לא מאובטח אם יש במחשב כמה משתמשים שאתה לא רוצה שייכנסו אליך וניתן לתת הרשאה "פרטית" יותר אל ידיי פקודה אחרת, לא כזה משנה במחשב פרטי)

עכשו פשוט תריץ chromium רגיל

פורסם
  • מחבר

אוקיי, הרצתי את הפקודות והפעלתי מחדש. איך אני בודק שזה עובד?

פורסם

אם הפעלת מחדש את המחשב אתה בדיוק ביטלת את הרצת הפקודות. הן עובדות מרגע ההרצה ועד לכיבוי

הכרומיום אמור להיות סגור לגמרי בזמן הרצה כדיי שלא יפריע. תפתח אותו מ 0 (לא מחדש) אחריי שהרצת

אם תיתן את ההוראה mount (בלי כלום) ב 1 מהשורות אתה אמור לראות שיש tmpfs אל התיקיה שכתבת. מעבר לזה - אם באמת יש את השיפור ביצועים שאתה מנסה לקבל בכרומיום

פורסם
  • מחבר

תפתח אותו מ 0 (לא מחדש) אחריי שהרצת

לא הבנתי

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים