ווטסאפ - לינוקס, BSD, קוד פתוח ותוכנה חופשית בעברית. Whatsup - Linux, BSD, open source and free software in Hebrew

 
 
  כניסת חברים · רישום · שכחתי סיסמה  
tux the penguin
תגובה לנושא
צפיה בנושא הבא Printable version התחבר כדי לבדוק הודעות פרטיות צפיה בנושא הקודם
חתוללא בפורום כעת ת.הצטרפות: 03/11/2007 · הודעות: 1034 ·
 

הודעה פורסם: 24/12/2012 - 10:18
נושא ההודעה: הגדלת מספר החיבורים לאפאצ׳י

יש לי VPS עם 1G זיכרון שמריץ בעיקר דרופל ומודל.
ברגע שאני יוצר אליו 15 חיבורים במקביל השרת מתחיל להיות מאוד אטי. כשאני מנסה לטעון את האתר בדפדפן לוקח לו 5 שניות עד שהוא מתחיל להיטען ואז הטעינה יחסית מהירה.
ניסיתי לשחק עם ההגדרות הרלוונטיות אבל לא ראיתי שיפור.

אני לא יודע אם זה קשור אבל השרת מריץ mod ruid2 מטעמי אבטחה.
קוד:
StartServers      5
MinSpareServers    5
MaxSpareServers    10
ServerLimit     150
MaxClients        150
MaxRequestsPerChild  1000

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

הודעה פורסם: 24/12/2012 - 10:36
נושא ההודעה:

הבעיה הבסיסית עם אפאצ'י זה שכדי להריץ את PHP כמודול שלו הוא צריך להיות פרה-פורק (כי PHP עובד טוב רק כשהוא מקומפל כ "non-thread-safe" ), כלומר להקדיש תהליך לכל חיבור, וזה גוזל די הרבה משאבים גם אם תשפר את הקונפיגורציה שלך. עדיין ניתן לשפר אתהמצב משמעותית אם הגדרות מתאימות, ייתכן שכדאי לך גם לבדוק את הגדרות הקאשינג שלך באפליקציות.
פתרון אפשרי אחד הוא להריץ את PHP כ FASTCGI מעל אפאצ'י שהוא מולטית'רדד (MPM event או MPM worker), במצב כזה יטופלו בקשות לקבצים סטטיים על ידי ת'רדים (או לולאת אירועים) ולא על ידי תהליכים שלמים, רק בקשות לסקריפטים של PHP יטופלו על ידי תהליכים (של FASTCGI). אופציה נוספת היא להריץ nginx כפרוקסי שמטפל בקבצים סטטיים בעצמו ומפנה בקשות PHP הלאה (לאפאצ'י או לFASTCGI) ולהגדיר בו קאשינג מתאים.
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אורח · ·
 

הודעה פורסם: 24/12/2012 - 10:39
נושא ההודעה:

אני עובד עם prefork משתי סיבות.
1. זה מה שמגיע עם סנטוס ולא מצאתי דרך הגיונית להתקין mpm אחר.
2. mod_ruid2 עובד רק עם prefork.

אני אבדוק את הגדות המטמון אבל 15 חיבורים לא צריכים ליצור עומס גם אם הגדרות המטמון לא אידאליות.
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
רם אוןאורח · ·
 

הודעה פורסם: 24/12/2012 - 22:17
נושא ההודעה: prefork לא טוב

prefork יוצר לך process לכל חיבור. הוא לא משתחרר עד שהחיבור לא מת. זו היתה שיטת העבודה ב- apache 1.3.

apache2 כולל גם תמיכה ב-thredes. מה שמייעל מאוד את התקשורת. pm_worker_module מאפשר לך להגדיר אותו. בכל מקרה, apache כדי שיעבוד כראוי, צריך squid שיהיה מונח לפניו. וזה גם תורם לאבטחה.

אתה גם יכול לנסות לשחק עם nginx, שאמור לתת ביצועים בסדר גודל יותר טוב מאשר apache.
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
iTK98לא בפורום כעת ת.הצטרפות: 15/11/2003 · הודעות: 570 · מיקום: Israel
 

הודעה פורסם: 27/12/2012 - 19:23
נושא ההודעה:

תספק עוד מידע. כשאתה יוצר 15 חיבורים, מה קורה מבחינת זכרון?

קוד:

ps axu
free -m


בעקרון ruid2 הוא פתרון דיי מהיר, בעיקר ביחס לפתרונות הפרדת הרשאות אחרות (CGI, suphp), אבל לצערי אף פעם לא יצא לי לשחק עם הפתרון הזה, אז אני לא מכיר אותו לעומק.

אני אצטרף להמלצה להריץ את nginx, אני עושה בו שימוש כשרת קדמי (reverse proxy), והוא פשוט עושה פלאים (השרת אחורי שלי הוא lighttpd). אתה יכול להשתמש בו כשרת וואב לכל דבר והביצועים הרבה יותר טובים מאשר אפאצ'י. אתה יכול גם לשים אותו פשוט כשרת קדמי לאפאצ'י הנוכחי שלך (תצטרך לעשות כמה שינויים קטנים בהגדרות של אפאצ'י, אבל הוא ילמד לחיות עם זה)

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

_________________
https://www.itk98.net
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם מספר ICQ 
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
חתוללא בפורום כעת ת.הצטרפות: 03/11/2007 · הודעות: 1034 ·
 

הודעה פורסם: 30/12/2012 - 11:44
נושא ההודעה:

תודה על התגובה.
אני לא יכול להריץ כרגע בדיקה כי השרת בשימוש בימים הקרובים, כשהוא יתפנה אני אצור עליו עומס.

להשתמש ב־nginx כשרת קדמי נשמע רעיון טוב אבל יש לי בעיה. לפי מה שראיתי הקבצים שהוא מגיש יגיעו מכתובת אחרת ולה לא יהיה לי אישור אבטחה (שכחתי לציין שמדובר על אתר מאובטח).
להחליף את אפאצ׳י זו גם אפשרות בתנאי ששרת אחר ייתן לי את כל האפשרויות שאני צריך (ruid2,xsendfile).

בינתיים התקנתי את mod_pagespeed ואת APC הם אמנם מאיצים את טעינת הדפים במצב רגיל אבל לא במצב של עומס.

אני לא בטוח איזה מודולים אני יכול לבטל, אני מניח שיש כאלה שלא צריך.

קוד:
httpd -M
Loaded Modules:
 core_module (static)
 mpm_prefork_module (static)
 http_module (static)
 so_module (static)
 auth_basic_module (shared)
 auth_digest_module (shared)
 authn_file_module (shared)
 authn_alias_module (shared)
 authn_anon_module (shared)
 authn_dbm_module (shared)
 authn_default_module (shared)
 authz_host_module (shared)
 authz_user_module (shared)
 authz_owner_module (shared)
 authz_groupfile_module (shared)
 authz_dbm_module (shared)
 authz_default_module (shared)
 ldap_module (shared)
 authnz_ldap_module (shared)
 include_module (shared)
 log_config_module (shared)
 logio_module (shared)
 env_module (shared)
 ext_filter_module (shared)
 mime_magic_module (shared)
 expires_module (shared)
 deflate_module (shared)
 headers_module (shared)
 usertrack_module (shared)
 setenvif_module (shared)
 mime_module (shared)
 dav_module (shared)
 status_module (shared)
 autoindex_module (shared)
 info_module (shared)
 dav_fs_module (shared)
 vhost_alias_module (shared)
 negotiation_module (shared)
 dir_module (shared)
 actions_module (shared)
 speling_module (shared)
 userdir_module (shared)
 alias_module (shared)
 substitute_module (shared)
 rewrite_module (shared)
 proxy_module (shared)
 proxy_balancer_module (shared)
 proxy_ftp_module (shared)
 proxy_http_module (shared)
 proxy_ajp_module (shared)
 proxy_connect_module (shared)
 cache_module (shared)
 suexec_module (shared)
 disk_cache_module (shared)
 cgi_module (shared)
 version_module (shared)
 ruid2_module (shared)
 xsendfile_module (shared)
 pagespeed_module (shared)
 php5_module (shared)
 ssl_module (shared)
Syntax OK
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
iTK98seאורח · ·
 

הודעה פורסם: 30/12/2012 - 12:54
נושא ההודעה:

עוד מודל שלא יצא לי לשחק איתו Embarassed ייתכן ומה שאני אומר יהיה שגוי, אבל אני אקח את הסיכון, בכל מקרה תבחן את זה, במקרה הגרוע אני טועה ואתה לא יכול לעשות במה שאני אומר שימוש. אתה צריך לבחון אם אתה מסוגל לעשות שימוש בתמיכה המובנת של nginx ב-XSendfile שיגיש אוטומטית קבצים עם המודל הזה מבלי לקרוא לשרת וואב האחורי.

לקריאה נוספת,
http://wiki.nginx.org/XSendfile
http://rack.rubyforge.org/doc/Rack/Sendfile.html
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
חתוללא בפורום כעת ת.הצטרפות: 03/11/2007 · הודעות: 1034 ·
 

הודעה פורסם: 31/12/2012 - 11:46
נושא ההודעה:

,פסתי את השרת פנוי והרצתי בדיקה, דווקא נראה בסדר.
קוד:
# free -m
             total       used       free     shared    buffers     cached
Mem:           992        974         18          0         77        488
-/+ buffers/cache:        408        583
Swap:          976         24        952

קוד:
# ps axu
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0  19228   556 ?        Ss   Dec17   0:00 /sbin/init
root         2  0.0  0.0      0     0 ?        S    Dec17   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    Dec17   0:00 [migration/0]
root         4  0.0  0.0      0     0 ?        S    Dec17   0:12 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S    Dec17   0:00 [migration/0]
root         6  0.0  0.0      0     0 ?        S    Dec17   0:05 [watchdog/0]
root         7  0.0  0.0      0     0 ?        S    Dec17   2:41 [events/0]
root         8  0.0  0.0      0     0 ?        S    Dec17   0:00 [cgroup]
root         9  0.0  0.0      0     0 ?        S    Dec17   0:00 [khelper]
root        10  0.0  0.0      0     0 ?        S    Dec17   0:00 [netns]
root        11  0.0  0.0      0     0 ?        S    Dec17   0:00 [async/mgr]
root        12  0.0  0.0      0     0 ?        S    Dec17   0:00 [pm]
root        13  0.0  0.0      0     0 ?        S    Dec17   0:00 [xenwatch]
root        14  0.0  0.0      0     0 ?        S    Dec17   3:28 [xenbus]
root        15  0.0  0.0      0     0 ?        S    Dec17   0:12 [sync_supers]
root        16  0.0  0.0      0     0 ?        S    Dec17   0:10 [bdi-default]
root        17  0.0  0.0      0     0 ?        S    Dec17   0:00 [kintegrityd/0]
root        18  0.0  0.0      0     0 ?        S    Dec17   1:23 [kblockd/0]
root        19  0.0  0.0      0     0 ?        S    Dec17   0:00 [ata/0]
root        20  0.0  0.0      0     0 ?        S    Dec17   0:00 [ata_aux]
root        21  0.0  0.0      0     0 ?        S    Dec17   0:00 [ksuspend_usbd]
root        22  0.0  0.0      0     0 ?        S    Dec17   0:00 [khubd]
root        23  0.0  0.0      0     0 ?        S    Dec17   0:00 [kseriod]
root        24  0.0  0.0      0     0 ?        S    Dec17   0:00 [md/0]
root        25  0.0  0.0      0     0 ?        S    Dec17   0:00 [md_misc/0]
root        26  0.0  0.0      0     0 ?        S    Dec17   0:00 [khungtaskd]
root        27  0.0  0.0      0     0 ?        S    Dec17   1:58 [kswapd0]
root        28  0.0  0.0      0     0 ?        SN   Dec17   0:00 [ksmd]
root        29  0.0  0.0      0     0 ?        S    Dec17   0:00 [aio/0]
root        30  0.0  0.0      0     0 ?        S    Dec17   0:00 [crypto/0]
root        35  0.0  0.0      0     0 ?        S    Dec17   0:00 [kthrotld/0]
root        37  0.0  0.0      0     0 ?        S    Dec17   0:00 [khvcd]
root        38  0.0  0.0      0     0 ?        S    Dec17   0:00 [kpsmoused]
root        39  0.0  0.0      0     0 ?        S    Dec17   0:00 [usbhid_resume]
root        67  0.0  0.0      0     0 ?        S    Dec17   0:00 [kstriped]
root       196  0.0  0.0      0     0 ?        S    Dec17   1:41 [kjournald]
root       260  0.0  0.0  10784   220 ?        S<s  Dec17   0:00 /sbin/udevd -d
root       454  0.0  0.0      0     0 ?        S    Dec17   0:59 [flush-202:0]
root       527  0.0  0.0      0     0 ?        S    Dec17   0:00 [kauditd]
root       853  0.0  0.2 251576  2916 ?        Sl   Dec17   0:07 /sbin/rsyslogd
root       874  0.0  0.0  11564   884 ?        S    Dec17   1:12 /bin/bash /usr/
root       953  0.0  0.0  21820   628 ?        Ssl  Dec17   8:35 /usr/sbin/nova-
dbus       962  0.0  0.0  21400   200 ?        Ss   Dec17   0:00 dbus-daemon --s
root       995  0.0  0.0  64072   412 ?        Ss   Dec17   0:00 /usr/sbin/sshd
ntp       1017  0.0  0.0  30160   628 ?        Ss   Dec17   0:04 ntpd -u ntp:ntp
root      1053  0.0  0.0 108164   236 ?        S    Dec17   0:00 /bin/sh /usr/bi
mysql     1142  0.3  3.5 723976 36044 ?        Sl   Dec17  60:58 /usr/libexec/my
root      1239  0.0  0.0  78684   472 ?        Ss   Dec17   0:12 /usr/libexec/po
postfix   1248  0.0  0.0  78932   592 ?        S    Dec17   0:02 qmgr -l -t fifo
root      1277  0.0  0.0   4060   192 tty1     Ss+  Dec17   0:00 /sbin/mingetty
root      1279  0.0  0.0   4072   216 hvc0     Ss+  Dec17   0:00 /sbin/agetty /d
root      1280  0.0  0.0   4060   192 tty2     Ss+  Dec17   0:00 /sbin/mingetty
root      1282  0.0  0.0   4060   192 tty3     Ss+  Dec17   0:00 /sbin/mingetty
root      1284  0.0  0.0   4060   192 tty4     Ss+  Dec17   0:00 /sbin/mingetty
root      1286  0.0  0.0   4060   192 tty5     Ss+  Dec17   0:00 /sbin/mingetty
root      1288  0.0  0.0   4060   192 tty6     Ss+  Dec17   0:00 /sbin/mingetty
root      2134  0.0  0.0  21452   348 ?        Ss   Dec25   0:00 /usr/sbin/atd
root      4073  0.0  0.3  97816  3852 ?        Ss   07:59   0:00 sshd: root@pts/
root      4076  0.0  0.1 108432  1988 pts/0    Ss   07:59   0:00 -bash
postfix   6217  0.0  0.3  78764  3196 ?        S    08:33   0:00 pickup -l -t fi
root     10381  0.0  1.4 386460 14584 ?        Ss   09:34   0:00 /usr/sbin/httpd
501      10383  0.7  5.6 403028 57648 ?        R    09:34   0:03 /usr/sbin/httpd
501      10384  0.2  6.7 412356 68184 ?        R    09:34   0:01 /usr/sbin/httpd
501      10385  1.0  6.9 414480 70576 ?        R    09:34   0:05 /usr/sbin/httpd
apache   10386  3.4  9.1 661196 92964 ?        Sl   09:34   0:18 /usr/sbin/httpd
501      10387  0.7  6.7 642464 69052 ?        Rl   09:34   0:04 /usr/sbin/httpd
501      10442  0.9  7.2 642984 73200 ?        Rl   09:35   0:04 /usr/sbin/httpd
501      10445  1.5  7.2 641668 74044 ?        Rl   09:35   0:07 /usr/sbin/httpd
501      10446  0.6  3.1 392876 32064 ?        R    09:35   0:03 /usr/sbin/httpd
501      10926  5.1  2.9 392780 30436 ?        R    09:42   0:03 /usr/sbin/httpd
501      10930  5.2  2.9 392772 30044 ?        R    09:42   0:03 /usr/sbin/httpd
501      10931  5.2  2.9 392772 30044 ?        R    09:42   0:03 /usr/sbin/httpd
root     10963  0.0  0.0   4068   512 ?        S    09:42   0:00 sleep 60
501      10975  6.5  2.9 392772 30044 ?        R    09:42   0:03 /usr/sbin/httpd
501      10977  6.4  2.9 392916 30044 ?        R    09:42   0:03 /usr/sbin/httpd
501      10978  6.4  2.9 392800 30044 ?        R    09:42   0:03 /usr/sbin/httpd
501      10981  6.4  2.9 392772 30044 ?        R    09:43   0:02 /usr/sbin/httpd
501      10982  6.3  2.9 392772 30044 ?        R    09:43   0:02 /usr/sbin/httpd
501      10983  6.3  2.9 392772 30044 ?        R    09:43   0:02 /usr/sbin/httpd
apache   10989  0.0  0.8 386592  8200 ?        S    09:43   0:00 /usr/sbin/httpd
apache   10990  0.0  0.8 386592  8196 ?        S    09:43   0:00 /usr/sbin/httpd
apache   10992  0.0  0.8 386592  8196 ?        S    09:43   0:00 /usr/sbin/httpd
apache   10994  0.0  0.8 386592  8196 ?        S    09:43   0:00 /usr/sbin/httpd
apache   10996  0.0  0.8 386592  8196 ?        S    09:43   0:00 /usr/sbin/httpd
apache   10998  0.0  0.8 386592  8196 ?        S    09:43   0:00 /usr/sbin/httpd
apache   11001  0.0  0.8 386592  8196 ?        S    09:43   0:00 /usr/sbin/httpd
apache   11003  0.0  0.8 386592  8196 ?        S    09:43   0:00 /usr/sbin/httpd
root     11091  0.0  0.1 110228  1120 pts/0    R+   09:43   0:00 ps axu
root     15221  0.0  0.0 117212   560 ?        Ss   Dec27   0:09 crond
root     18147  0.0  0.0  10780   176 ?        S<   Dec27   0:00 /sbin/udevd -d
root     18148  0.0  0.0  10780   112 ?        S<   Dec27   0:00 /sbin/udevd -d
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
iTK98לא בפורום כעת ת.הצטרפות: 15/11/2003 · הודעות: 570 · מיקום: Israel
 

הודעה פורסם: 05/01/2013 - 15:24
נושא ההודעה:

1. השרת שלך עושה שימוש בזכרון וירטואלי למרות שיש לו זכרון פיזי פנוי, מומלץ להנמיך את הערך ה-swappiness אלא כן יש לך כוננים ממש - אבל ממש מהירים.

קוד:

cat /proc/sys/vm/swappiness
echo "0" > /proc/sys/vm/swappiness


https://en.wikipedia.org/wiki/Swappiness

2. נראה שהבעיה באמת לא עם הזכרון אלא עם התהליכים עצמם. כמה ליבות זמינות לך ב-VPS?

3. כנראה שתצטרך להחליף את המודל עבודה שלך עם השרת וואב, לשים את nginx מקדימה זו התחלה טובה. כפי שכבר הזכרת בעקבות כך שיש שימוש בrPorxy, תהיה כתובת זהה לכל הקלינטים שלך, ניתן לעקוף את זה על-ידי HTTP_X_REAL_IP ש-nginx יודע להעביר לשרת האחורי.

לדוגמה עם wordpress אני עושה שימוש במשתנים הללו (שמתי את זה ב-wp-config.php), אני מאמין שאפשר גם ללמד את הסקריפטים שאתה משתמש בהם לעשות שימוש במשתנה הזה.

קוד:

if (isset($_SERVER["HTTP_X_REAL_IP"]))
        $_SERVER['REMOTE_ADDR'] = $_SERVER["HTTP_X_REAL_IP"];

_________________
https://www.itk98.net
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם מספר ICQ 
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
חתוללא בפורום כעת ת.הצטרפות: 03/11/2007 · הודעות: 1034 ·
 

הודעה פורסם: 06/01/2013 - 10:32
נושא ההודעה:

תודה על העצות.
1. הנמכתי את ערך ה־swappiness והמצב רק הורע. במקרה של עומס השרת הפסיק להגיב ולא היה אטי כמו שהיה לפני כן. החזרתי כרגע ל־60. אבל אני מניח שהכוננים לא מהירים במיוחד.
2. יש לי ליבה אחת.
3. אני אבדוק את nginx לעומק, מקווה שהוא יתאים לי.
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
צפריראורח · ·
 

הודעה פורסם: 06/01/2013 - 10:53
נושא ההודעה:

מהו צוואר הבקבוק במערכת? ניסית לבדוק מה קורה בעזרת top, iotop ו־vmstart ?
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
חתוללא בפורום כעת ת.הצטרפות: 03/11/2007 · הודעות: 1034 ·
 

הודעה פורסם: 06/01/2013 - 13:22
נושא ההודעה:

נראה שהמעבד עובד הכי קשה אבל אני מצרף את הפלט לעיניים שיותר מבינות משלי.
קוד:
]# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
15  0      0 475752  14952 229544    0    0    89    15  149  223  6  5 88  1  0   

iotop
http://pastebin.com/LEn6yY3M
top
http://pastebin.com/u4e6MbfU
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
iTK98לא בפורום כעת ת.הצטרפות: 15/11/2003 · הודעות: 570 · מיקום: Israel
 

הודעה פורסם: 06/01/2013 - 20:44
נושא ההודעה:

1. כנראה שהבעיה היא עם הזכרון, אין לך מספיק בכדי להריץ את כמות התהליכים הנדרשת. חלק מתהליכים ה-httpd שלך תופסים 100 מגה, אחרים רק 8 מגה. swappiness 0 אומר שרק במקרה ממש קיצוני הוא יעבור לשימוש ב-swap, ולכן ברגע שנגמר לשרת שלך הזכרון הוא החל לעשות שימוש ב-swap וכנראה נתקע (הפך ללא מגיב).

_________________
https://www.itk98.net
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם מספר ICQ 
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
צפריראורח · ·
 

הודעה פורסם: 06/01/2013 - 21:12
נושא ההודעה:

יש כל מיני מודולים של אפאצ'י שאתה יכול להעיף אם אתה לא משתמש בהם. לדוגמה, כל מודולי הפרוקסי, mod_ssl (אם אתה לא משתמש בו). נסה להוריד מודול ולהשתמש בפקודה capachictl configtest
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
חתוללא בפורום כעת ת.הצטרפות: 03/11/2007 · הודעות: 1034 ·
 

הודעה פורסם: 07/01/2013 - 09:35
נושא ההודעה:

תודה על העצות עד עכשיו.
העפתי הרבה מודלים של אפאצ׳י (את SSL אני חייב), הרשימה כרגע היא
קוד:
Loaded Modules:
 core_module (static)
 mpm_prefork_module (static)
 http_module (static)
 so_module (static)
 auth_basic_module (shared)
 auth_digest_module (shared)
 authn_file_module (shared)
 authn_alias_module (shared)
 authn_anon_module (shared)
 authn_dbm_module (shared)
 authn_default_module (shared)
 authz_host_module (shared)
 authz_user_module (shared)
 authz_owner_module (shared)
 authz_groupfile_module (shared)
 authz_dbm_module (shared)
 authz_default_module (shared)
 ldap_module (shared)
 authnz_ldap_module (shared)
 include_module (shared)
 log_config_module (shared)
 logio_module (shared)
 env_module (shared)
 ext_filter_module (shared)
 mime_magic_module (shared)
 expires_module (shared)
 deflate_module (shared)
 headers_module (shared)
 usertrack_module (shared)
 setenvif_module (shared)
 mime_module (shared)
 dav_module (shared)
 dav_fs_module (shared)
 vhost_alias_module (shared)
 negotiation_module (shared)
 dir_module (shared)
 actions_module (shared)
 speling_module (shared)
 alias_module (shared)
 substitute_module (shared)
 rewrite_module (shared)
 cache_module (shared)
 suexec_module (shared)
 disk_cache_module (shared)
 ruid2_module (shared)
 xsendfile_module (shared)
 version_module (shared)
 pagespeed_module (shared)
 php5_module (shared)
 ssl_module (shared)


אני בודק גם אפשרות לעבור שרת ל־lighttpd או ל־nginx אבל נראה שאין להם משהו דומה ל־mod_ruid2 שמאפשר הפרדה מוחלטת בין המערכות שרצות על השרת.
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
iTK98לא בפורום כעת ת.הצטרפות: 15/11/2003 · הודעות: 570 · מיקום: Israel
 

הודעה פורסם: 07/01/2013 - 19:55
נושא ההודעה:

אני אפרוש בפנייך את השימוש שאני עושה ב-Lighttpd ו-Nginx, אני מריץ 3 אתרים קטנים שיש לי בהם כ-1000 היטס ביום (בסך הכל). אני גם נתקלתי בבעיה שאפאצ'י מציב בפני מנהלי שרתים. ראשית זאת הבעיה של משאבים, אפאצ'י כבד. הבעיה השניה היא הפרדה של הרשאות ברגע שיש שימוש בסקריפטים צד שרת. אני בזמנו עשיתי שימוש ב-suPHP, אבל הפתרון הזה איטי בהרבה (למיטב ידעתי, לא עשיתי מבדק, זה ממה שקראתי ברשת) מאשר ruid2. את בעיות האבטחה שפתרתי בעבר על-ידי suPHP אני פותר היום על-ידי הרצה של שרת קדמי ואחורי, אף אחד מהם אינו רץ עם הרשאות של מנהל מערכת.

אני מריץ כשרת אחורי את lighttpd ואני מריץ את PHP כ-fastcgi, אפשר לשפר את הביצועים על-ידי שימוש ב-php-fpm (אבל החבילה הזאת לא זמינה לי במערכת). השרת האחורי מאזין על פורט שאינו מצריך הרשאות רוט ועל כתובת פנימית. כל ויהוסט מריץ תהליך משלו של lighttpd ובכך מופרד על בסיס גישת משתמש הגישה של התהליך (ואפשר גם להגדיר quota של מידע).

לדוגמה, הויהוסט xxx מאזין על 127.0.0.1:33001, רץ תחת משתמש xxx
הויהוסט yyy מאזין על 127.0.0.1:33002, רץ תחת משתמש yyy.

לבסוף אני מריץ שרת nginx שעובד כשרת קדמי (reverse proxy) הוא מאזין על פורט 80 (בעזרת capabilites או על פורט אחר שלא מצריך הרשאות רוט ואז אני מנתב תעבורה אליו בעזרת הפיירוואל). אני עושה שימוש ביכולות פרוקסי של nginx בכדי לומר לומר מאיפה לטעון את העמוד כאשר הוסט מסויים מתבקש ממנו. לבסוף אני עושה שימוש ביכולות cache שלו בכדי לחסוך קריאות מהשרת האחורי בכל הקשור למידע סטטי.

המודל הזה צורך במקסימום כ-200 מגה זכרון. אני בנוסף עושה שימוש ב-APC בשביל הטמנה של מידע דינמי, ו-PHP מוגבל ל-32 מגה זכרון. בכל הקשור ל-fastcgi אני מגדיר ב-lighttpd תהליך אחד ו-8 תת-תהליכים ( PHP_FCGI_CHILDREN ) זה מגביל את המערכת לעיבוד של 8 עמודים בו זמנית. אם יש מעבד מספיק חזק והקוד לא מורכב מדי, זה אומר שתוכל לעבד מאות עמודים בשניה. כמובן ש-nginx מפחית את הקריאות לשרת ובכך חוסך עיבד מעמודים שלא השתנו (או ש-nginx חושב כי לא השתנו).

Image

_________________
https://www.itk98.net
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם מספר ICQ 
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
צפריראורח · ·
 

הודעה פורסם: 08/01/2013 - 00:34
נושא ההודעה:

יש לי הרגשה ש־16 עותקים נפרדים של lighttpd ו־16 עותקים נפרדים של PHP יהיו יותר כבדים מאפאצ'י אחד. והמטרה היא להגיע ליותר משתמשים מ־16.

מה שכן, האם אתה יכול להפריד את מה שלא קשור ל־ruid2 לשרת נפרד? בפרט כל מה שקשור ל־SSL. אני מניח שאת PHP אתה לא יכול.
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
iTK98לא בפורום כעת ת.הצטרפות: 15/11/2003 · הודעות: 570 · מיקום: Israel
 

הודעה פורסם: 08/01/2013 - 04:08
נושא ההודעה:

צפריר :
יש לי הרגשה ש־16 עותקים נפרדים של lighttpd ו־16 עותקים נפרדים של PHP יהיו יותר כבדים מאפאצ'י אחד. והמטרה היא להגיע ליותר משתמשים מ־16.

מה שכן, האם אתה יכול להפריד את מה שלא קשור ל־ruid2 לשרת נפרד? בפרט כל מה שקשור ל־SSL. אני מניח שאת PHP אתה לא יכול.


http://pastebin.com/raw.php?i=R8NFMtTD

זה מסתכם ב-30 מגה במצב ההתחלה. זה כמובן מתנפח, כל תהליך php-cgi גדל עד למגבלה שהוגדרה ב-php.ini (במקרה שלי ל-32 מגה). השרת מסוגל לתת מענה ליותר קריאות מאשר מספר התהליכים, זה כבר תלוי במעבד וכמה זמן לוקח לו "לרנדר" כל עמוד php. כאן כבר נכנס לשימוש APC שחוסך זמן מהיצירה של העמודים.

צריך לזכור כי Nginx ו-Lighttpd הם שרתים א-סינכרונים, תהליך האב (במקרה של nginx יש עוד מספר תהליכי עזר) מסוגל לתת מענה לכל הבקשות והוא אינו צריך ליצור תרד נוסף בכדי לתת מענה למשתמש אחר. הבעיה היא כמו אצל אפאצי רק פחות חמורה, איך להגיש תוכן דינמי בצורה בטוחה ומהירה, הפתרון לכך הוא php-cgi או php-fpm שיוצר את העמודים ברקע. לכך מוסיפים מערכת הטמנה [APC] והזמן יצירה של עמוד WP סטנדרטי הוא פחות מעשרית השניה.

אז יש לך 8 תהליכי php-cgi שיצירת עמוד בהם היא כ-0.1 שניה, משמע בשניה אני יכול לתת מענה ל-80 בקשות. הצאוור בקבוק תמיד היה ותמיד יהיה PHP, אין סיבה שאפאצי יוסיף לכך, שימוש ב-nginx ו-lighttp מסירים את המכשול שאפאצי מציב בעצמו.

_________________
https://www.itk98.net
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם מספר ICQ 
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אורח · ·
 

הודעה פורסם: 08/01/2013 - 17:06
נושא ההודעה:

לא הצלחתי להבין בדיוק את העיניין ה Swappiness.
אפשר בבקשה לסכם את זה בכמה מילים ?
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
חתוללא בפורום כעת ת.הצטרפות: 03/11/2007 · הודעות: 1034 ·
 

הודעה פורסם: 09/01/2013 - 12:22
נושא ההודעה:

itk98, איך אתה מריץ את lighttpd עם כמה משתמשים שונים? לא מצאתי דרך לעשות את זה. באפאצ׳י אני עושה את זה עם ruid2 מה שמאפשר לי למנוע גישה לקבצים של אתר מסוים ממשתמש של אתר אחר שרץ על השרת.

התקנתי את nginx בתור שרת קדמי על שרת בדיקות וזה נראה נחמד. אני אולי אתקין אותו על השרת הראשי (תלוי בעוד כמה אנשים). השרת מהיר יותר במקרה של עומס למרות שעדיין החיבור אטי.
פעלתי לפי הפוסט הזה עם כמה שינויים שנצרכים אצלי בשרת.
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
iTK98לא בפורום כעת ת.הצטרפות: 15/11/2003 · הודעות: 570 · מיקום: Israel
 

הודעה פורסם: 09/01/2013 - 21:59
נושא ההודעה:

אני בונה את הבינארים בעצמי, אם אין לך נסיון בבניה מקוד מקור של תוכנות, לא הייתי ממליץ. אני משתמש בהגדרות של
קוד:

--prefix=/webc/nginx
--prefix=/webc/lighttpd


יש לי סקריפט שאותו אני מריץ כרוט והוא מכיל את הפקודות:
קוד:

su nginx -c "/webc/nginx/sbin/nginx -c /webc/nginx/conf/nginx.conf"
su www.itk98.net -c "/webc/lighttpd/sbin/lighttpd -f /webc/clients/www.itk98.net/conf/www.itk98.net.conf"
su blog.itk98.net -c "/webc/lighttpd/sbin/lighttpd -f /webc/clients/blog.itk98.net/conf/blog.itk98.net.conf"


אני כרגע מתעצל, אבל אני יותר מאוחר אעלה את הקבצי הגדרות שלי שתוכל להעזר בהם.

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

קובץ הגדרות ראשי של nginx,
http://pastebin.com/raw.php?i=wcvd8ZsY
קובץ ויהוסט ראשון,
http://pastebin.com/raw.php?i=ujit9W04
קובץ ויהוסט שני,
http://pastebin.com/raw.php?i=URhjFsr4

קובץ lighttpd ראשון,
http://pastebin.com/raw.php?i=uu0xDmxM
קובץ שני, (בלוג)
http://pastebin.com/raw.php?i=Y1HBnV12

_________________
https://www.itk98.net
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם מספר ICQ 
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
הצגת הודעות מלפני:     
מעבר אל:  
כל הזמנים הם GMT + 2 שעות
תגובה לנושא
צפיה בנושא הבא Printable version התחבר כדי לבדוק הודעות פרטיות צפיה בנושא הקודם
PNphpBB2 © 2003-2004 

תוכן הדיון

  1. חתול
  2. אורח
  3. אורח
  4. אורח [רם און]
  5. iTK98
  6. חתול
  7. אורח [iTK98se]
  8. חתול
  9. iTK98
  10. חתול
  11. אורח [צפריר]
  12. חתול
  13. iTK98
  14. אורח [צפריר]
  15. חתול
  16. iTK98
  17. אורח [צפריר]
  18. iTK98
  19. אורח
  20. חתול
  21. iTK98