במחשבי חלונות הגבלת הקבצים הינה 4096 בשרתי 32 ביט ( לא בדקתי ב64 עדיין )
בשרתי לינוקס ההגבלה היא מה שבא לך לשים ב
proc/sys/fs
ו file-max, file-nr.
מטבע הדברים בונה האתר משתמש במערכת חלונות, ובמידה ואתה מחזיק יותר מ 4000 קבצים בתיקיה , ויוצא לך להוריד את הגיבוי אליך למחשב ולעבוד על קבצי האתר (נדיר) , או יותר הגיוני.. תנסה לפתוח את התיקייה ב FLASHFXP ותעשה רענון, .... החלון עלול להיתקע .
נניח בצד חלונות,
צורת העבודה של ext3 ( מערכת הקבצים הסטנדרטית בלינוקס סנטוס 5 ), מערכת הקבצים תומכת בהמון קבצים, אך ברגע שיש לך הרבה קבצים בשימוש שיושבים באותה תיקיה , האינדקס של התיקייה עלולה להיפגם ( נניח הפעלה מחדש לא צפויה ), ויהיה לך קשה מאוד להגיע לקבצים שלך במקרה כזה.
בנוסף לוקחים בחשבון I/O ( ברמת החומרה ) של הכונן הקשיח ,ושיטת העבודה של הפיזית של כונן מגנטי.
כשעובדים בתיקיות מסודרות, יותר "קל" לדיסק פיזית לבצע את פעולת שליפת הנתונים והעלאתם לזיכרון בצורה יעילה.
בעולם ה STORAGE , נהוג להשתמש במערכות קבצים כמו XFS שם לא מדברים על הנושאים הללו בכלל , אך לא בשרתי סנטוס , לכן בא הפתרון הפשוט של חלוקה לתיקיות מתאימות (כמו בדוגמא של יגאל עשו לפי תאריכים )
שיטה נפוצה נוספת היא לעבוד בתצורת תיקיות מבוססות MD5
למשל:
קוד:
[user@localhost ~]$ ./hashdemo.sh
pix00001.jpg fd8f49c6487588989cd764eb493251ec
pix00002.jpg 12955d9587d99becf3b2ede46305624c
pix00003.jpg bfdc8f593676e4f1e878bb6959f14ce2
[user@localhost ~]$ cat hashdemo.sh
#!/bin/sh
#
CANDIDATES="pix00001.jpg pix00002.jpg pix00003.jpg"
for i in `echo "${CANDIDATES}"`; do
HASH=`echo "$i" | md5sum - | awk {'print $1'}`
echo "$i ${HASH}"
done
[user@localhost ~]$
לוקחים את התו הראשון של ה MD5 של כל קובץ, ומכניסים יחד באותה תיקיה קבצים שמתחילים באותו תו MD5 ,
במידה ויש לך המון קבצים, אפשר להשתמש ב 2 תווים ראשונים וכן האלה בהתאם להיקף המערכת ובמחשבה לעתיד.
אפשר ליישם את זה גם ב PHP שמכיל פונקצית MD5 ויצירת תיקיות מובנית בשפה.
במילים אחרות , שרתי הלינוקס(מערכת ההפעלה עצמה ) אינם רגישים - אבל הדיסקים הקשיחים ומערכות הקבצים השונות מתפקדות בצורה שונה , לכן חשוב לשמור על סטנדרט אחיד ונוח ,תוך כדי התחשבות בכל סוגי מערכות הקבצים והתחשבות במבנה הפיזי של הכוננים המגנטיים.
אני מניח שאותו מפתח בוואלה נתקל בתופעה של load avarages גבוהים , ללא קשר למצב הסרביסים , ובדיקה פשוטה הראתה שמדובר ב I/O של הדיסקים הקשיחים, מכאן הפתרון.