![]() |
קאשינג לדיסק -php
אני רוצה לבצע קאשינג לדיסק, העניין הוא שאני צריך לעשות את זה לכמות עצומה של קבצים (יכול להגיע למאות אלפים).
כל קובץ ישקול כמה מאות קילו. חשבתי על לעשות את זה ידני, לכתוב את הקבצים לתיקיה ולהריץ איזה קרון ג׳וב שימחוק קבצים שקיימים יותר משבוע. האם יש מגבלה לקבצים בתיקיה? (יוניקס) ייוצר ויימחק לי אלפי קבצים ביום. יש תוסף שעושה את זה לבד בדרך יעילה יותר? תודה. |
מה זה הקבצים האלה? web server או..?
|
איזה filesystem?
כמה ניגשים לקבצים האלה ומה המשקל שלהם? במקרה כזה צריך כדאי להשתמש בפתרון קיים מאשר לכתוב מחדש. ואם ניתן להשתמש בcaching ברמת ב-apache. עוד יותר טוב. |
זה קבצים שאני מקבל מapi.
הקבצים המבוקשים ייכנסו לזיכרון עם apc אבל אני מוגבל בזכרון כך שאת הקבצים הפחות מבוקשים אני רוצה לשמור בדיסק. כל קובץ שוקל כ400 קילו, כל קובץ נקרא כמות שונה של פעמים, סדר גודל של עד 100 קריאות ביום. |
בשביל כמות כזו של קריאות (באירוח שיתופי?) הייתי כותב סקריפט קטן שיבצע את הפעולה.
אם מדובר על כמות רצינית יותר של קריאות, הייתי משתמש ב nginx reverse caching proxy עם או בלי memcached. אל תבנה על apc בשביל זה. זה לא המטרה שלו. |
שרת ייעודי.
אז כמו שחשבתי, פשוט לכתוב סקריפט שיעשה את זה. יש בעיה לדחוף חצי מליון קבצים לתיקיה אחת? |
ציטוט:
בפועל, כשתבקש קובץ רנדומלי, ייקח קצת זמן עד שהשרת ישלוף את הקובץ. מה המשקל של כל הקבצים ביחד? וכמה RAM יש לך בשרת? אולי כן כדאי לשקול שימוש ב-Memcached. |
כנראה שאני כן אחליף את הapc בmemcached אבל אין לי מספיק ראם בשביל רק זה, אני חייב להשתמש בדיסק.
אם אני אחלק את הקבצים לתיקיות? נניח לפי אות ראשונה. זה יפתור את הבעיה? |
מה מספר הקבצים? מה המשקל של כולם ביחד?
|
עשרות אלפים עד מאות אלפים.
כמה ג׳יגות. |
אתה יכול להשתמש ב-memcached ואם חסר מקום אז להגדיל את הראם.
שים לב ש-memcached הוא לא מוצר אמין, המידע נשמר על ה-RAM ולא ניתן לבצע גיבוי לכל התוכו, כלומר - השימוש הוא לקבצים זמניים בלבד ולאחר ריסטרט - כל התוכן צריך להיבנות מחדש. לגבי הטמעה שלו, אפשר להשתמש ב-nginx, שים לב שאתה אמור להכניס את התוכן לתוך ה-memcached ו-nginx לא עושה את זה. (אתה בודק אם הקובץ קיים, ואם לא אז אתה מפנה לסקריפט שנותן את הפלט של הקובץ ובאותו הזמן מכניס את הקובץ ל-memcache). כמו כן, צריך להתאים את ה-Http Headers לפי הסיומת של הקובץ. חלופה אחרת היא שימוש ב-Varnish Cache, אבל אני לא יודע אם זה ייתן את אותן התוצאות במספר כזה גדול של קבצים (אחרי הכל, Varnish מושך את התוכן מ-apache ואז שומר בזכרון - יש עדיין פקק תנועה אצל Apache). עוד טיפ קצר - תקמפל ישר מהמקור ואל תשתמש ב-RPM, ה-RPM של centos ישן וקורס. |
קיבלתי, אני אשתמש רק בmemcached, אבל אני לא אוהב לחבר nginx וapache בייחד מתכון לצרות.
ריסט לapache לא מוחק לי את הקאש נכון? כמה בעייתי יהיה להשאר רק עם apache? |
ציטוט:
ריסט לאפצ'י מנקה את APC. התוכן ב-Memcached נמחק רק ב-3 דרכים: * - התוכנה קורסת. * - השרת קורס. * - הזינו ב-Memcached את הפקודה flush_all. להישאר עם Apache בלבד, ידרוש PHP כדי לדבר עם Memcache וזה יעבוד טוב בתעבורה בנפחים קטנים, אבל בנפחים גדולים זה מתכון לכאב ראש. |
ציטוט:
תודה רבהההה!! |
כל הזמנים הם GMT +2. הזמן כעת הוא 04:44. |
מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ