LXF97:Пережить Slashdot-эффект
|
|
|
Содержание |
Ðак ÑделаÑÑ Slashdotâо-ÑпоÑнÑм Ð²Ð°Ñ ÑеÑвеÑ
- ÐÐ°Ñ web-ÑеÑÐ²ÐµÑ Ð¿Ð¾Ð´Ð¾Ñвал ÑилÑ, оÑÐ±Ð¸Ð²Ð°Ñ Ð½Ð°Ð¿Ð»Ñв поÑеÑиÑелей â аж по два обÑаÑÐµÐ½Ð¸Ñ Ð² ÑекÑндÑ? Ðол ХадÑон покажеÑ, как его излеÑиÑÑ.
- ÐÑедÑпÑеждение: до ÑÑаÑÑа
- ÐнеÑение изменений в наÑÑÑойки ваÑего ÑеÑвеÑа Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑивеÑÑи к непÑеÑказÑемÑм поÑледÑÑвиÑм. ÐÑ ÑовеÑÑем иÑполÑзоваÑÑ Ð´Ð»Ñ ÑÑÐ¸Ñ ÑеÑÑов не занÑÑÑй в оÑновной деÑÑелÑноÑÑи ÑеÑÐ²ÐµÑ Ð¸ пеÑед внеÑением лÑбÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹ в наÑÑÑойки делаÑÑ ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ñ Ð²ÑÐµÑ Ñайлов ÑиÑÑемÑ. ÐоÑле Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð½Ð°ÑÑÑоек Apache/MySQL не забÑдÑÑе пеÑезапÑÑÑиÑÑ ÑеÑвиÑÑ, ÑÑÐ¾Ð±Ñ Ð½Ð¾Ð²Ñе паÑамеÑÑÑ Ð²ÑÑÑпили в ÑилÑ
Digg, Reddit, Delicious, Furl, Newsvine и дÑÑгие кÑÑпнÑе ÑайÑÑ Ð½Ð¾Ð²Ð¾ÑÑей поÑеÑаÑÑÑÑ Ð¼Ð¸Ð»Ð»Ð¸Ð¾Ð½Ð°Ð¼Ð¸ полÑзоваÑелей, но, вообÑе говоÑÑ, лиÑÑ Ð¾Ð´Ð¸Ð½ из Ð½Ð¸Ñ Ð¿Ð¾Ð¿ÑлÑÑен доÑÑаÑоÑно, ÑÑÐ¾Ð±Ñ Ð´Ð°ÑÑ Ð¸Ð¼Ñ ÑвлениÑ, вгонÑÑÑÐµÐ¼Ñ Ð² Ð¿Ð¾Ñ ÑиÑадминов: Slashdot-ÑÑÑекÑÑ. ÐовоÑÑи на нем, возможно, вам и не по вкÑÑÑ, но Slashdot оÑÑаеÑÑÑ ÐµÐ´Ð²Ð° ли не главной оÑÑадой Ñ Ð°ÐºÐµÑов в ÐнÑеÑнеÑе. СÑÑлка на Ð²Ð°Ñ web-ÑайÑ, вклÑÑÐµÐ½Ð½Ð°Ñ Ð² Ð¾Ð´Ð½Ñ Ð¸Ð· новоÑÑей Ñ Ð³Ð»Ð°Ð²Ð½Ð¾Ð¹ ÑÑÑаниÑÑ, пÑÐ¸Ð²ÐµÐ´ÐµÑ Ðº вам за неÑколÑко ÑаÑов более ÑоÑока ÑÑÑÑÑ Ñеловек, ÑÑо ÑÑеваÑо двÑÐ¼Ñ Ð¸ÑÑ Ð¾Ð´Ð°Ð¼Ð¸: либо огÑомнÑм ÑоÑÑом пÑибÑли Ð¾Ñ ÑÐµÐºÐ»Ð°Ð¼Ñ (болÑÑе наÑÐ¾Ð´Ñ Ð¿ÑÐ¾ÐºÐ»Ð¸ÐºÐ°ÐµÑ Ð²Ð°Ñи баннеÑÑ), либо Ñем, ÑÑо Ð²Ð°Ñ ÑеÑÐ²ÐµÑ ÑаÑплавиÑÑÑ, погÑÑзив ÑÐ°Ð¹Ñ Ð² анабиоз ожидаÑÑ Ð²Ð¾Ð»Ñебного поÑелÑÑ, коÑоÑÑй веÑÐ½ÐµÑ ÐµÐ³Ð¾ к жизни. Ðолее Ñого, еÑли ваÑа иÑÑоÑÐ¸Ñ Ð¸Ð½ÑеÑеÑна ÑиÑокой аÑдиÑоÑии, Ñо ее пеÑеопÑбликÑÑÑ ÑоÑни дÑÑÐ³Ð¸Ñ ÑайÑов, иÑÑоÑником новоÑÑей Ð´Ð»Ñ ÐºÐ¾ÑоÑÑÑ ÑвлÑеÑÑÑ Slashdot, и поÑеÑиÑелей Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð² неÑколÑко ÑÑÑÑÑ Ñаз болÑÑе â еÑли, конеÑно, Ð²Ð°Ñ ÑÐ°Ð¹Ñ Ð½Ðµ ÑÑÑ Ð½ÐµÑ.
Ðо Ð²Ð¾Ñ Ð±ÐµÐ´Ð°: болÑÑинÑÑво ÑайÑов именно ÑÑо ÑÑÑ Ð½ÐµÑ. Slashdot-ÑÑÑÐµÐºÑ Ð¿Ð¾Ð»ÑÑил Ñвое название из-за Ñого, ÑÑо оÑÐ´Ñ Ð½Ð°Ð³Ð½Ð°Ð½Ð½ÑÑ Ð¸Ð¼ визиÑеÑов пÑевÑÑали пÑÐµÐ´ÐµÐ»Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑей ÑайÑов, и поÑледние в конÑе конÑов падали. ÐÑли же Ð²Ñ Ð½Ð°ÑÑÑÐ¾ÐµÐ½Ñ ÑеÑÑезно и Ñ Ð¾ÑиÑе, ÑÑÐ¾Ð±Ñ Ð²Ð°Ñ ÑÐ°Ð¹Ñ Ð±Ñл доÑÑÑпен вÑегда и везде, Ñо еÑÑÑ Ð¼Ð½Ð¾Ð³Ð¾ ÑпоÑобов ÑдеÑжаÑÑ Ð½Ð°Ð¿Ð¾Ñ Ð¿Ð¾ÑеÑиÑелей. Ðа, надо взÑÑÑÑÑ Ð·Ð° оÑÑжие и показаÑÑ Ð¿ÑÑÑавÑм ÑлÑÑдоÑÑеÑам, ÑÑо вам плеваÑÑ Ð½Ð° 500 запÑоÑов в ÑекÑндÑ, ÑÑо вам пÑиÑÑно бÑÑÑ ÐºÐ°Ðº Dugg и ÑÑо Delicious оÑÑаеÑÑÑ ÑолÑко оÑиÑаÑÑ Ñ Ð»Ð¸Ñа гÑÑзÑ, леÑÑÑÑÑ Ð¸Ð·-под ваÑÐ¸Ñ ÐºÐ¾Ð¿ÑÑ. ÐоÑоÑе, поÑа пÑевÑаÑиÑÑ Ð²Ð°Ñ Ð¼ÐµÐ´Ð»ÐµÐ½Ð½Ñй и ÑÑедненÑкий web-ÑеÑÐ²ÐµÑ Ð² ÑÑпеÑбÑÑÑÑÑй и ÑÑпеÑнадежнÑй ÑеÑÐ²ÐµÑ Ð²Ð°Ñей меÑÑÑ.
Ðиви и дай ÑмеÑеÑÑ
[Рзаголовке â название извеÑÑной пеÑни Ðола ÐаккаÑÑни, â пÑим. пеÑ.]
ÐÑÑÑÑоÑа ваÑего кода оÑобого знаÑÐµÐ½Ð¸Ñ Ð½Ðµ имееÑ: в конеÑном иÑоге вÑе завиÑÐ¸Ñ Ð¾Ñ Ð³ÑамоÑноÑÑи наÑÑÑойки Apache. ÐÑоблема в Ñом, ÑÑо лÑди дÑмаÑÑ: «ÐÑ Ð²Ð¾Ñ, ÑÐ°Ð¹Ñ Ð¿ÑоÑеÑÑиÑован: он ÑпÑавлÑеÑÑÑ, даже когда на него Ð·Ð°Ñ Ð¾Ð´Ð¸Ñ ÑÑÐ°Ð·Ñ 20 Ñеловек â оÑлиÑно!» 20 обÑаÑений в ÑекÑÐ½Ð´Ñ â ÑÑо Ð½ÐµÐ¿Ð»Ð¾Ñ Ð¾, еÑли Ð²Ñ ÑазмазÑваеÑе ÑиÑло поÑеÑений в меÑÑÑ ÑавномеÑно по меÑÑÑÑ. Ðогда Ð¼Ñ ÑпÑоÑили, наÑколÑко опаÑен Slashdot, Ñ ÑкÑпеÑÑа LXF по web-ÑÐµÑ Ð½Ð¾Ð»Ð¾Ð³Ð¸Ñм Ðайка СондеÑÑа, ÑÐ¾Ñ Ð¿Ð¾Ð±Ð»ÐµÐ´Ð½ÐµÐ», задÑожал и не ÑÑÐ°Ð·Ñ Ð¾ÑвеÑил: «Slashdot-ÑÑÑÐµÐºÑ â ÑÑо как ÑÑÑÑÑа ÑеÑмиÑов, гÑÑзÑÑÐ¸Ñ Ð²Ð°Ñи ÑеÑевÑе кабели». Ркогда он говоÑил о ÑÑÑÑÑе, он и имел в Ð²Ð¸Ð´Ñ ÑÑÑÑÑÑ: двадÑаÑÑ Ð¾Ð±ÑаÑений в ÑекÑÐ½Ð´Ñ â ÑÑо Ð½ÐµÐ¿Ð»Ð¾Ñ Ð¾, но еÑли ÑÑÑлка на Ð²Ð°Ñ ÑÐ°Ð¹Ñ ÑÐ³Ð¾Ð´Ð¸Ñ Ð½Ð° Slashdot, ÑеалÑно полÑÑиÑÑ Ð´Ð¾ ÑÑÑÑÑи обÑаÑений в ÑекÑндÑ.
ÐеÑвÑй ÑÑÑÐµÐºÑ Slashdot Ð²Ð¾Ð·Ð½Ð¸ÐºÐ°ÐµÑ Ñогда, когда из-за огÑомного колиÑеÑÑва одновÑеменно оÑкÑÑÑÑÑ Ñоединений поÑеÑиÑелÑм не ÑдаеÑÑÑ ÑоединиÑÑÑÑ Ñ ÑеÑвеÑом, даже еÑли он еÑе жив и ноÑмалÑно обÑабаÑÑÐ²Ð°ÐµÑ Ð·Ð°Ð¿ÑоÑÑ. Рони нажимаÑÑ Ð½Ð° ÐºÐ½Ð¾Ð¿ÐºÑ Â«ÐбновиÑÑ», и делаÑÑ ÑÑо Ñнова и Ñнова; и Ñано или поздно ÑеÑÐ²ÐµÑ Ð² Ñамом деле падаеÑ. ÐÐ¾Ñ Ð²Ð°Ð¼ и вÑоÑой ÑÑÑÐµÐºÑ Slashdot: Ð²Ð°Ñ ÑеÑÐ²ÐµÑ ÑÑановиÑÑÑ Ð´ÑмÑÑейÑÑ Ñазвалиной.
Таким обÑазом, ÑеÑение пÑÐ¾Ð±Ð»ÐµÐ¼Ñ ÑоÑÑÐ¾Ð¸Ñ Ð² вÑбоÑе: обеÑпеÑиÑÑ Ð¿Ð¾Ð»ÑзоваÑелÑм либо 100%-нÑÑ Ð¿ÑоизводиÑелÑноÑÑÑ ÑеÑÑÑÑа пÑи низ- кой загÑÑзке и 5%-нÑÑ Ð¿Ñи вÑÑокой, либо 90%-нÑÑ Ð¿Ñи низкой и 70%-нÑÑ Ð¿Ñи вÑÑокой. ÐолÑÑинÑÑво лÑдей пÑедпоÑло Ð±Ñ Ð²ÑоÑой ваÑианÑ, поÑÐ¾Ð¼Ñ ÑÑо болÑÑÑÑ ÑаÑÑÑ Ð²Ñемени поÑÑвÑÑвоваÑÑ ÑазниÑÑ Ð¼ÐµÐ¶Ð´Ñ 90% и 100%-ной пÑоизводиÑелÑноÑÑÑÑ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾. Ðо когда на ÑÐ°Ð¹Ñ Ð·Ð°Ñ Ð¾Ð´ÑÑ ÑÑÑÑÑи поÑеÑиÑелей и вÑÐµÐ¼Ñ Ð¸Ð¼ÐµÐµÑ Ð·Ð½Ð°Ñение, ÑазлиÑие Ð¼ÐµÐ¶Ð´Ñ ÑÑими ваÑианÑами ÑÑановиÑÑÑ Ð¾ÑевиднÑм.
ÐÑи два ваÑианÑа ÑÐ°Ð·Ð´ÐµÐ»ÐµÐ½Ñ Ð¾Ð´Ð½Ð¾Ð¹ ÑÑÑокой в Ñайле наÑÑÑоек Apache: KeepAlive. Ðна поÑвилаÑÑ Ð² HTTP/1.1 и пÑедназнаÑена Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ ÑазÑеÑиÑÑ Ð¿Ð¾ÑÑоÑнное Ñоединение Ð¼ÐµÐ¶Ð´Ñ ÐºÐ»Ð¸ÐµÐ½Ñом и ÑеÑвеÑом. ÐÑаÑÐ·ÐµÑ Ð±ÐµÐ· поддеÑжки KeepAlive ÑоединÑеÑÑÑ Ñ ÑеÑвеÑом, загÑÑÐ¶Ð°ÐµÑ ÑÑÑаниÑкÑ, оÑÑоединÑеÑÑÑ, заÑем пÑовеÑÑеÑ, еÑÑÑ Ð»Ð¸ на ÑÑÑаниÑе ÑиÑÑнки и дÑÑгие вложениÑ, поÑле Ñего ÑÐ¾Ð·Ð´Ð°ÐµÑ Ð¾ÑделÑнÑе ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ из ÑÑÐ¸Ñ Ð¾Ð±ÑекÑов. ÐÑо ÑÑебÑÐµÑ Ð¼Ð°ÑÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑÑ Ð´ÐµÐ¹ÑÑвий, поÑÑÐ¾Ð¼Ñ KeepAlive ÑÐ¾Ñ ÑанÑÐµÑ Ð¾Ð´Ð½Ð¾ Ñоединение оÑкÑÑÑÑм около 15 ÑекÑнд, позволÑÑ Ð¿Ð¾Ð»ÑзоваÑелем загÑÑзиÑÑ Ð² его Ñ Ð¾Ð´Ðµ неÑколÑко Ñайлов. ÐÑли на ваÑем ÑайÑе много гÑаÑики, Ñо вклÑÑение поддеÑжки KeepAlive ÑпоÑобно ÑменÑÑиÑÑ Ð²ÑÐµÐ¼Ñ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ (ÑÑо не Ñо же Ñамое, ÑÑо вÑÐµÐ¼Ñ Ð·Ð°Ð³ÑÑзки ÑÑÑаниÑÑ) пÑимеÑно вдвое.
ÐÑе ÑÑо Ñ Ð¾ÑоÑо, но вÑпомним, ÑÑо Apache поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð½Ðµ более 256 одновÑеменнÑÑ Ñоединений. Так ÑÑо еÑли пÑÑаÑÑÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑиÑÑÑÑ 1000 полÑзоваÑелей, Ñо Apache оÑкÑÐ¾ÐµÑ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ Ð´Ð²ÑмÑÑÑами пÑÑÑÑдеÑÑÑÑÑ ÑеÑÑÑÑ Ð¸Ð· Ð½Ð¸Ñ , обÑабоÑÐ°ÐµÑ Ð¸Ñ Ð·Ð°Ð¿ÑоÑÑ Ð½Ð° вÑе ÑÑÑаниÑÑ Ð¸ каÑÑинки, поÑом оÑÑÐ°Ð²Ð¸Ñ Ñоединение оÑкÑÑÑÑм на 15 ÑекÑнд на ÑлÑÑай, еÑли клиенÑÑ Ð·Ð°ÑÑебÑÑÑ ÐµÑе ÑÑо-либо, и, наконеÑ, закÑÐ¾ÐµÑ Ð¸Ñ . ТÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ пеÑейÑи к обÑлÑÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ð´ÑÑÐ³Ð¸Ñ Ð¿Ð¾Ð»ÑзоваÑелей. ÐдеÑÑ ÐµÑÑÑ Ð´Ð²Ðµ оÑновнÑе пÑоблемÑ. Ðо-пеÑвÑÑ , глÑпо ÑÐ¾Ñ ÑанÑÑÑ Ñоединение оÑкÑÑÑÑм в ÑеÑение 15 ÑекÑнд, когда его ждÑÑ ÑоÑни дÑÑÐ³Ð¸Ñ Ð¿Ð¾Ð»ÑзоваÑелей. Ðо-вÑоÑÑÑ , пÑиоÑиÑÐµÑ Ð·Ð°Ð³ÑÑзки изобÑажений над загÑÑзкой ÑодеÑжимого â ÑÑÑка непÑавилÑÐ½Ð°Ñ Ð¿Ð¾ ÑÑÑи. ÐÑли оÑклÑÑиÑÑ Ð¿Ð¾Ð´Ð´ÐµÑÐ¶ÐºÑ KeepAlive, Ñо Ñайл жÑÑнала запÑоÑов бÑÐ´ÐµÑ Ð²ÑглÑдеÑÑ Ð¿ÑимеÑно Ñак:
User 1 запÑоÑил index.html
User 2 запÑоÑил index.html
User 3 запÑоÑил index.html
User 1 запÑоÑил foo.jpg
User 2 запÑоÑил foo.jpg
User 3 запÑоÑил foo.jpg
User 4 запÑоÑил index.html
User 1 запÑоÑил bar.jpg
User 2 запÑоÑил bar.jpg
User 3 запÑоÑил bar.jpg
User 4 запÑоÑил foo.jpg
User 4 запÑоÑил bar.jpg
ÐÑо кÑда ÑпÑаведливее, и веÑоÑÑноÑÑÑ Ñого, ÑÑо бÑÐ´ÐµÑ Ð¾Ð±ÑлÑÐ¶ÐµÐ½Ñ Ð²Ñе полÑзоваÑели, а не неÑколÑко пÑиоÑиÑеÑнÑÑ
, намного вÑÑе. УбедилиÑÑ? Так и должно бÑло бÑÑÑ! ЧÑÐ¾Ð±Ñ Ð¾ÑклÑÑиÑÑ Ð¿Ð¾Ð´Ð´ÐµÑÐ¶ÐºÑ KeepAlive, оÑкÑойÑе Ñайл наÑÑÑоек Apache (обÑÑно /etc/httpd/httpd.conf или /etc/apache2/apache2.conf) и измениÑе ÑÑÑокÑ
KeepAlive On
на ÑÑÑокÑ
KeepAlive Off
ÐоÑле пеÑезапÑÑка Apache ÑазниÑÑ Ð² ÑкоÑоÑÑи Ð²Ñ Ð¿Ð¾ÑÑи не замеÑиÑе. Ðо когда наÑÑÑÐ¿Ð¸Ñ ÐºÑиÑиÑеÑкий Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð¸ ваÑа иÑÑоÑÐ¸Ñ ÑÑÐ°Ð½ÐµÑ Ð¿ÐµÑвой на Slashdot, Ñогда Ð²Ñ Ð¿Ð¾ÑÑвÑÑвÑеÑе ÑазниÑÑ.
ÐÑнаÑÑка PHP
ÐÑак, Apache заÑабоÑал на полной ÑкоÑоÑÑи; Ð¼Ñ Ð¼Ð¾Ð¶ÐµÐ¼ обÑаÑиÑÑ Ð½Ð°Ñ Ð²Ð·Ð³Ð»Ñд на PHP, на коÑоÑом напиÑано болÑÑинÑÑво попÑлÑÑнÑÑ web-ÑайÑов. С PHP ÑвÑÐ·Ð°Ð½Ñ Ð´Ð²Ðµ оÑновнÑе пÑоблемÑ:
- 1 ÐÑо инÑеÑпÑеÑиÑÑемÑй ÑзÑк, и ÑкÑÐ¸Ð¿Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ компилиÑоваÑÑÑÑ ÐºÐ°Ð¶Ð´Ñй Ñаз, когда запÑаÑиваеÑÑÑ ÑÑÑаниÑа. Ðак ни ÑÑÑанно, вÑÐµÐ¼Ñ ÐºÐ¾Ð¼Ð¿Ð¸Ð»ÑÑии ÑаÑÑо гоÑаздо болÑÑе вÑемени вÑполнениÑ.
- 2 Ðод Ð¼Ð½Ð¾Ð³Ð¸Ñ Ð¿Ð¾Ð¿ÑлÑÑнÑÑ Ð¿ÑоекÑов оÑÑавлÑÐµÑ Ð¶ÐµÐ»Ð°ÑÑ Ð»ÑÑÑего или ÑлиÑком ÑаздÑÑ. ÐÑимеÑами поÑледнего могÑÑ ÑлÑжиÑÑ PHPBB и PostNuke. Ðо даже еÑли каÑеÑÑво кода оÑÐµÐ½Ñ Ð²ÑÑокое (напÑимеÑ, MediaWiki или Drupal), пеÑÐ²Ð°Ñ Ð¿Ñоблема вÑе Ñавно оÑÑаеÑÑÑ.
ÐÑÑÑ Ð¸ еÑе одна пÑоблема, но Ð¾Ñ Ð½ÐµÐµ обÑÑно ÑÑÑадаÑÑ ÑолÑко ÑиÑÑемнÑе админиÑÑÑаÑоÑÑ Windows: еÑли инÑеÑпÑеÑаÑÐ¾Ñ PHP запÑÑ- каеÑÑÑ Ð² Ñежиме CGI, Ñо он ÑабоÑÐ°ÐµÑ ÑжаÑно медленно. Ð Linux PHP ÑаÑе вÑего Ñже ÑконÑигÑÑиÑован Ð´Ð»Ñ Ð·Ð°Ð¿ÑÑка как модÑÐ»Ñ Apache, Ñак как ÑÑÐ¾Ñ ÑпоÑоб обеÑпеÑÐ¸Ð²Ð°ÐµÑ Ð½Ð°Ð¸Ð»ÑÑÑее бÑÑÑÑодейÑÑвие. ÐÑли Ð²Ñ Ð½Ðµ ÑвеÑенÑ, ÑоздайÑе Ñайл info.php в коÑневом каÑалоге web-ÑеÑвеÑа и добавÑÑе в него ÑледÑÑÑие ÑÑÑоки:
<?php phpinfo(); ?>
ÐагÑÑзив ÑÑÐ¾Ñ Ñайл в бÑаÑзеÑе, в Ñазделе Server API Ð²Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ ÑвидеÑÑ ÑÑÑÐ¾ÐºÑ Apache 2.0 Handler. ÐÑли ее неÑ, Ñо PHP ÑабоÑÐ°ÐµÑ Ð½Ðµ Ñ Ð¼Ð°ÐºÑималÑной пÑоизводиÑелÑноÑÑÑÑ, и вам нÑжно ÑÑÑановиÑÑ Ð¿Ð°ÐºÐµÑ mod-php5 Ð´Ð»Ñ ÑеÑвеÑа Apache.
Ðо даже еÑли PHP наÑÑÑоен пÑавилÑно, ваÑа ÑабоÑа ÑолÑко наÑинаеÑÑÑ: вам пÑедÑÑÐ¾Ð¸Ñ ÑÑÑановиÑÑ ÐºÑÑ Ð¸ опÑимизаÑÐ¾Ñ ÐºÐ¾Ð´Ð°, ÑазобÑаÑÑÑÑ, как ÑгенеÑиÑоваÑÑ Ð¾ÑÑеÑ, еÑли ÑÑÑаниÑÑ Ð·Ð°Ð³ÑÑжаÑÑÑÑ ÑлиÑком долго; наконеÑ, вÑе ÑÑо должно ÑабоÑаÑÑ ÐºÐ°Ðº можно бÑÑÑÑее, поÑÐ¾Ð¼Ñ ÑÑо наÑа ÑÐµÐ»Ñ Ð·Ð´ÐµÑÑ â одолеÑÑ Slashdot, а не ÑÑаÑиÑÑ ÐºÑÑÑ Ð²Ñемени на ÑедакÑиÑование Ñайлов конÑигÑÑаÑии.
ÐоменÑалÑное ÑеÑение â Zend Platform, коÑоÑÐ°Ñ ÑÐ¼ÐµÐµÑ Ð²Ñе вÑÑепеÑеÑиÑленное и даже болÑÑе. ÐÑа ÑÑеда Ñ Ð¾ÑоÑа Ñем, ÑÑо Ñ Ð½ÐµÐ¹ можно ни о Ñем не дÑмаÑÑ â Ð²Ñ ÐµÐµ ÑÑÑанавливаеÑе, и она авÑомаÑиÑеÑки кÑÑиÑÑÐµÑ Ð¸ ÑÑкоÑÑÐµÑ Ð²Ñполнение вÑÐµÑ ÑÑÑÐ°Ð½Ð¸Ñ Ð½Ð° ÑеÑвеÑе без ваÑего ÑÑаÑÑиÑ. ÐÑли ÑÐ°Ð¹Ñ Ð´Ð¾ÑÑаÑоÑно кÑÑпнÑй, Ñо вам, возможно, Ð·Ð°Ñ Ð¾ÑеÑÑÑ ÑвелиÑиÑÑ ÐºÐ¾Ð»Ð¸ÑеÑÑво опеÑаÑивной памÑÑи, вÑделÑемой под кÑÑ â по ÑмолÑÐ°Ð½Ð¸Ñ ÑÑо 64 ÐÐ, вполне доÑÑаÑоÑно Ð´Ð»Ñ ÐºÑÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑÑÑÑÑи PHP-ÑкÑипÑов пÑилиÑного ÑазмеÑа. ÐÑпомним, ÑÑо кÑÑ ÐºÐ¾Ð´Ð° позволÑÐµÑ ÐºÐ¾Ð¼Ð¿Ð¸Ð»Ð¸ÑоваÑÑ ÑкÑипÑÑ PHP лиÑÑ Ð¾Ð´Ð¸Ð½ Ñаз, ÑÐ¾Ñ ÑанÑÑ Ð² опеÑаÑивной памÑÑи ÑезÑлÑÑÐ°Ñ ÐºÐ¾Ð¼Ð¿Ð¸Ð»ÑÑии, ÑÑо ÑÑкоÑÑÐµÑ Ð¸Ñ Ð²Ñполнение. Ð ÑезÑлÑÑаÑе Ð²Ð°Ñ ÑÐ°Ð¹Ñ ÑабоÑÐ°ÐµÑ Ð½Ðµ Ñ Ñже, Ñем ÑанÑÑе, а ÑиÑло обÑаÑений в ÑекÑÐ½Ð´Ñ ÑвелиÑиваеÑÑÑ Ð² ÑÑи-ÑеÑÑÑе Ñаза.
ÐÑли Ð²Ñ Ñ Ð¾ÑиÑе еÑе Ð¿Ð¾Ð´Ñ Ð»ÐµÑÑнÑÑÑ Ñвой ÑеÑвеÑ, попÑобÑйÑе динамиÑеÑкое кÑÑиÑование ÑодеÑжимого: ÑÑÑаниÑ, не изменÑемÑÑ Ð¾Ð±ÑаÑением к ним. ÐапÑимеÑ, допÑÑÑим, ÑоÑма Ñ Ð·Ð°Ð¿ÑоÑом GET вÑзÑÐ²Ð°ÐµÑ ÑолÑко полÑÑение даннÑÑ , а запÑÐ¾Ñ POST пÑеобÑазовÑÐ²Ð°ÐµÑ ÑÑÑаниÑÑ. ÐинамиÑеÑкое кÑÑиÑование ÑÑÑÐ°Ð½Ð¸Ñ Ð² Zend Platform позволÑÐµÑ Ð¸Ð·Ð±ÐµÐ¶Ð°ÑÑ Ð½ÐµÐ½ÑжнÑÑ Ð¾Ð±ÑаÑений к базе даннÑÑ Ð´Ð»Ñ ÑÐµÑ ÑÑÑаниÑ, ÑодеÑжимое коÑоÑÑÑ Ð½Ðµ менÑеÑÑÑ. Ðа пÑакÑике Ñ Ñанение кÑÑиÑованнÑÑ ÑÑÑÐ°Ð½Ð¸Ñ Ð² опеÑаÑивной памÑÑи обеÑпеÑÐ¸Ð²Ð°ÐµÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑное повÑÑение ÑкоÑоÑÑи в 4 Ñаза по ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ñ ÑÑадиÑионнÑми ÑиÑÑемами Ñ ÐºÑÑиÑованием на жеÑÑком диÑке.
ÐÑли Ð²Ñ ÐµÑе не ÑбежденÑ, ÑÑо Zend Platform Ð¼Ð¾Ð¶ÐµÑ ÑнÑÑÑ Ñ Ð²Ð°Ñ ÑÑжкое бÑемÑ, подÑмайÑе Ð²Ð¾Ñ Ð¾ Ñем: ÑÑа ÑиÑÑема беÑплаÑна Ð´Ð»Ñ ÑазÑабоÑÑиков. ÐÑо ознаÑаеÑ, ÑÑо пока ÑÑа плаÑÑоÑма не ÑабоÑÐ°ÐµÑ Ð½Ð° наÑÑоÑÑем ÑеÑвеÑе, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе полÑзоваÑÑÑÑ ÐµÐ¹ ÑовеÑÑенно безвозмездно. СÑоимоÑÑÑ Ð»Ð¸Ñензии на пÑодÑÐºÑ â 685 ÑÑнÑов в год без ÑÑеÑа ÐÐС, вклÑÑÐ°Ñ Ð¿Ð¾Ð´Ð´ÐµÑÐ¶ÐºÑ ÑеÑез ÐнÑеÑнеÑ.
Ðой, мой MySQL
Ðногие иÑполÑзÑÑÑ Ð´Ð»Ñ MySQL движок MyISAM â пÑежде вÑего поÑомÑ, ÑÑо он ÑабоÑÐ°ÐµÑ Ð¾ÑÐµÐ½Ñ Ð±ÑÑÑÑо, заÑÑавлÑÑ Ð·Ð°Ð±ÑÑÑ Ð¾ поÑенÑиалÑной возможноÑÑи повÑÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ . Ðо еÑли ÑÑо-Ñо Ñже Ñ Ñ Ð¾Ð´Ñ ÑабоÑÐ°ÐµÑ Ð±ÑÑÑÑо, ÑÑо не знаÑиÑ, ÑÑо нелÑÐ·Ñ Ð´Ð¾Ð±Ð¸ÑÑÑÑ ÐµÑе болÑÑей ÑкоÑоÑÑи. ÐÑим Ð¼Ñ ÑейÑÐ°Ñ Ð¸ займемÑÑ, поÑколÑкÑ, кое-где подпÑавив ÑÐ°Ð¹Ð»Ñ ÐºÐ¾Ð½ÑигÑÑаÑии, можно ÑеалÑно ÑвелиÑиÑÑ ÑкоÑоÑÑÑ ÑабоÑÑ MySQL. ÐÑавда, Ñ Ð¾Ð³Ð¾Ð²Ð¾Ñкой: ÑÑÐ¾Ð±Ñ Ð´Ð¾ÑÑиÑÑ Ð¼Ð°ÐºÑималÑной пÑоизводиÑелÑноÑÑи, поÑÑебÑеÑÑÑ Ð¼Ð½Ð¾Ð³Ð¾ опеÑаÑивной памÑÑи.
ÐÑежде вÑего оÑкÑойÑе Ñайл наÑÑÑоек MySQL â обÑÑно ÑÑо /etc/my.cnf, /etc/mysql/my.cnf или ÑÑо-Ñо в ÑÑом Ñоде. РваÑем диÑÑÑибÑÑиве, ÑкоÑее вÑего, Ñже еÑÑÑ Ñайл Ñ Ð½Ð°ÑÑÑойками по ÑмолÑаниÑ, но могÑÑ Ð±ÑÑÑ Ð¸ ÑÐ°Ð¹Ð»Ñ Ñ Ð½Ð°ÑÑÑойками Ð´Ð»Ñ ÑазлиÑнÑÑ Ñипов ÑеÑвеÑов. ÐапÑÑÑиÑе updatedb Ð´Ð»Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð»Ð¾ÐºÐ°Ð»Ñной Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , заÑем вÑполниÑе командÑ:
locate my-
Ð Ubuntu ÑÑа команда Ð½Ð°Ñ Ð¾Ð´Ð¸Ñ ÑÐ°Ð¹Ð»Ñ ÐºÐ¾Ð½ÑигÑÑаÑии MySQL в каÑалоге /usr/share/doc/mysql-server-5.0/examples, напÑимеÑ, my-huge.cnf Ñ ÐºÐ¾Ð½ÑигÑÑаÑией MySQL Ð´Ð»Ñ ÐºÑÑпнÑÑ ÑеÑвеÑов. ÐзÑÑÐ°Ñ ÑÑи ÑайлÑ, можно ÑзнаÑÑ Ð¼Ð½Ð¾Ð³Ð¾ нового, оÑобенно поÑомÑ, ÑÑо в наÑале Ñайла ÑодеÑжаÑÑÑ ÐºÐ¾Ð¼Ð¼ÐµÐ½ÑаÑии, поÑÑнÑÑÑие, Ð´Ð»Ñ ÐºÐ°ÐºÐ¸Ñ ÑиÑÑем даннÑй Ñайл болÑÑе вÑего подойдеÑ.
ÐÑли по-пÑоÑÑомÑ, ÑÑиÑÑваÑÑ Ð½Ð°Ð´Ð¾ ÑледÑÑÑие паÑамеÑÑÑ:
- Ð Ð°Ð·Ð¼ÐµÑ ÐºÐ»ÑÑевого бÑÑеÑа.
- Ð Ð°Ð·Ð¼ÐµÑ ÐºÑÑа запÑоÑов.
- ÐаÑÑÑойки ÑовмеÑÑного вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñоков.
- Ð Ð°Ð·Ð¼ÐµÑ ÐºÑÑа ÑаблиÑ.
ÐÑо не полнÑй ÑпиÑок кÑÑей и бÑÑеÑов, иÑполÑзÑемÑÑ MySQL, но ÑолÑко изменение именно ÑÑÐ¸Ñ Ð¿Ð°ÑамеÑÑов пÑÐ¸Ð²Ð¾Ð´Ð¸Ñ Ðº замеÑнÑм ÑезÑлÑÑаÑам.
ÐÑовеÑиÑÑ, доÑÑаÑоÑен ли обÑем клÑÑевого бÑÑеÑа, оÑÐµÐ½Ñ Ð¿ÑоÑÑо. СоединиÑеÑÑ Ñ ÑеÑвеÑом MySQL и в командной ÑÑÑоке вÑполниÑе ÑледÑÑÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ:
SHOW STATUS LIKE â%key_read%â;
ÐÑ Ð¿Ð¾Ð»ÑÑиÑе два ÑиÑла: Key_read_requests и Key_reads. ÐеÑвое показÑваеÑ, ÑколÑко Ñаз в базе даннÑÑ Ð¿ÑоизводилоÑÑ ÑÑиÑÑвание клÑÑа индекÑа, а поÑледний â ÑколÑко Ñаз клÑÑ Ð½Ðµ ÑдавалоÑÑ Ð½Ð°Ð¹Ñи в кÑÑе, и он ÑÑиÑÑвалÑÑ Ñ Ð´Ð¸Ñка. ÐÐ»Ñ Ð±Ð¾Ð»ÑÑинÑÑва ÑайÑов Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾, ÑÑÐ¾Ð±Ñ Ð·Ð½Ð°Ñение Key_read_requests бÑло как можно болÑÑе по ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ñ Key_reads. ÐпÑеделиÑÑ ÑиÑловой показаÑÐµÐ»Ñ ÐºÐ°ÑеÑÑва можно Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð¿ÑоÑÑой ÑоÑмÑлÑ:
100 â ((Key_reads / Key_read_requests) * 100)
ÐÑ Ð±ÐµÑеÑе знаÑение Key_reads и делиÑе его на Key_read_requests, заÑем ÑмножаеÑе ÑезÑлÑÑÐ°Ñ Ð½Ð° 100 и вÑÑиÑаеÑе полÑÑивÑееÑÑ ÑиÑло из 100. ÐоÑово. ÐапÑимеÑ, еÑли Ñ Ð²Ð°Ñ 30 Key_reads и 1177 Key_read_requests, нÑжно ÑазделиÑÑ 30 на 1177, полÑÑиÑÑÑ 0.025, заÑем ÑмножиÑÑ ÑÑо ÑиÑло на 100, и полÑÑиÑÑÑ 2.55, наконеÑ, вÑÑеÑÑÑ ÑÑо ÑиÑло из 100, и полÑÑиÑÑÑ 97.45%. ÐÑо ознаÑаеÑ, ÑÑо 97.45% вÑÐµÑ ÐºÐ»ÑÑей индекÑа ÑÑиÑÑваÑÑÑÑ Ð¸Ð· кÑÑа â ÑÑо великолепно! ÐÑли Ñ Ð²Ð°Ñ Ð¿Ð¾Ð»ÑÑилоÑÑ Ð¼ÐµÐ½ÐµÐµ 80%, Ñо либо Ñ Ð²Ð°Ñ Ð¿ÑоблемÑ, либо опеÑаÑий вÑÑавки, Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸ ÑÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¿ÑоÑÑо оÑÐµÐ½Ñ Ð¼Ð½Ð¾Ð³Ð¾, ÑÑо пÑÐ¸Ð²Ð¾Ð´Ð¸Ñ Ðº ÑоÑÑÑ Key_reads. ÐÑли ÑезÑлÑÑÐ°Ñ ÑоÑÑавил Ð¾Ñ 80 до 95 пÑоÑенÑов, Ñо нÑжно ÑвелиÑиÑÑ ÑÐ°Ð·Ð¼ÐµÑ ÐºÐ»ÑÑевого бÑÑеÑа â 256 ÐÐ ÑÑиÑаеÑÑÑ Ð±Ð¾Ð»ÐµÐµ или менее ноÑмалÑнÑм Ð´Ð»Ñ Ð±Ð¾Ð»ÑÑÐ¸Ñ Ð±Ð°Ð· даннÑÑ . ÐÑли Ñ Ð²Ð°Ñ Ð¿Ð¾Ð»ÑÑилоÑÑ Ð±Ð¾Ð»ÐµÐµ 95%, беÑпокоиÑÑÑÑ Ð½Ðµ о Ñем.
ÐÑÑ Ð·Ð°Ð¿ÑоÑов â ÑÑо одна из cамÑÑ Ð½ÐµÐ´Ð¾Ð¾ÑененнÑÑ Ñ Ð°ÑакÑеÑиÑÑик MySQL. Ðн оÑобенно Ñдобен, когда обÑем даннÑÑ Ð±Ð¾Ð»ÑÑой, запÑоÑÑ Ð²ÑполнÑÑÑÑÑ ÑаÑÑо, а даннÑе изменÑÑÑÑÑ Ñедко. Ðогда Ð²Ñ Ð²ÑполнÑеÑе запÑоÑ, обÑем ÑезÑлÑÑаÑа коÑоÑого не пÑевÑÑÐ°ÐµÑ 16 ÐÐ, Ñо ÑÑÐ¾Ñ ÑезÑлÑÑÐ°Ñ Ð¿Ð¾Ð¼ÐµÑаеÑÑÑ Ð² кÑÑ. ÐÑли ÑÐ¾Ñ Ð¶Ðµ запÑÐ¾Ñ Ð¿Ð¾ÑÑÑÐ¿Ð°ÐµÑ Ñнова, его ÑезÑлÑÑÐ°Ñ Ð±ÐµÑеÑÑÑ Ð¸Ð· кÑÑа. ФокÑÑ ÑоÑÑÐ¾Ð¸Ñ Ð² Ñом, ÑÑо еÑли даннÑе в какой-либо из ÑаблиÑ, ÑÑаÑÑвÑÑÑÐ¸Ñ Ð² кÑÑиÑованном запÑоÑе, изменÑÑÑÑÑ, кÑÑ Ð°Ð²ÑомаÑиÑеÑки оÑиÑаеÑÑÑ, ÑÑÐ¾Ð±Ñ ÑезÑлÑÑÐ°Ñ Ñнова ÑоÑмиÑовалÑÑ Ð½ÐµÐ¿Ð¾ÑÑедÑÑвенно из Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ .
Ð Ñайле наÑÑÑоек MySQL ÑÐ°Ð·Ð¼ÐµÑ ÐºÑÑа запÑоÑов опÑеделÑеÑÑÑ Ð¿ÐµÑеменной query_cache_size в Ñазделе [mysqld]. ÐапÑимеÑ, ÑекомендованнÑй минимÑм ÑоÑÑавлÑеÑ
query_cache_size=16M
âMâ в MySQL ознаÑÐ°ÐµÑ ÐÐ; Ñаким обÑазом, ÑÑа ÑÑÑока ÑÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ ÑÐ°Ð·Ð¼ÐµÑ ÐºÑÑа в 16 ÐÐ. Ðо еÑли ÑÐ°Ð·Ð¼ÐµÑ Ð¾Ð¿ÐµÑаÑивной памÑÑи позволÑÐµÑ â а он должен â ÑÑÑановиÑе ÑÑо знаÑение в 64M, ÑÑÐ¾Ð±Ñ ÐºÑÑиÑовалоÑÑ Ð±Ð¾Ð»ÑÑе запÑоÑов.
ÐоÑледние два паÑамеÑÑа лÑÑÑе ÑделаÑÑ Ð¿Ð¾Ð±Ð¾Ð»ÑÑе. ÐÐ»Ñ ÐºÑÑа ÑÐ°Ð±Ð»Ð¸Ñ Ð¾Ð±ÑÑно вполне доÑÑаÑоÑно 128; еÑли Ñ Ð²Ð°Ñ Ð±Ð¾Ð»ÑÑе 128 ÑаблиÑ, пÑоÑÑо ÑвелиÑÑÑе ÑÑо ÑиÑло. ЧÑо каÑаеÑÑÑ Ð¾Ð´Ð½Ð¾Ð²Ñеменного вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñоков, Ñо ÑиÑло паÑаллелÑнÑÑ Ð¿Ð¾Ñоков должно бÑÑÑ Ð²Ð´Ð²Ð¾Ðµ болÑÑе ÑиÑла ÑÐ´ÐµÑ Ð² ваÑем пÑоÑеÑÑоÑе â ÑÑало бÑÑÑ, Ð´Ð»Ñ ÑеÑÑÑÐµÑ ÑÑдеÑного пÑоÑеÑÑоÑа ÑÑÑановиÑе его в 8. ÐÐ¾Ñ Ð¸ вÑе: пеÑезапÑÑÑиÑе ÑеÑÐ²ÐµÑ MySQL Ð´Ð»Ñ Ð¿ÑинÑÑÐ¸Ñ Ð½Ð¾Ð²ÑÑ Ð½Ð°ÑÑÑоек и наÑлаждайÑеÑÑ Ð¾Ð±ÑеÑенной ÑкоÑоÑÑÑÑ!
УлÑÑÑеннÑй мониÑоÑинг MySQL
MySQL Ð²Ñ Ð¾Ð´Ð¸Ñ Ð² болÑÑинÑÑво диÑÑÑибÑÑивов, поÑÑÐ¾Ð¼Ñ Ð¼Ð½Ð¾Ð³Ð¸Ðµ не знаÑÑ, ÑÑо ÑÑÑеÑÑвÑÐµÑ Ð¿ÑевоÑÑ Ð¾Ð´Ð½Ð°Ñ ÐºÐ¾Ð¼Ð¼ÐµÑÑеÑÐºÐ°Ñ Ð²ÐµÑÑÐ¸Ñ Ð¿ÑодÑкÑа â MySQL Enterprise. ÐÑа веÑÑÐ¸Ñ Ð¸ÑполÑзÑÐµÑ ÑÐ¾Ñ Ð¶Ðµ ÑеÑвеÑ, ÑÑо и MySQL, но Ñ Ð²ÑÑ Ð¾Ð´ÑÑими каждÑе ÑÑи меÑÑÑа пакеÑами обновлениÑ, ÑлÑжбой поддеÑжки, и â главное â ÑеÑевÑм мониÑоÑом MySQL. ÐÑо оÑÐµÐ½Ñ ÑолковÑй Ð½Ð°Ð±Ð¾Ñ Ð¿ÑогÑамм, коÑоÑÑй локалÑно запÑÑÐºÐ°ÐµÑ ÑобÑÑвеннÑй web-ÑеÑÐ²ÐµÑ Ð¸ ÑеÑÐ²ÐµÑ MySQL, подклÑÑаемÑе ко вÑем оÑÑалÑнÑм ÑеÑвеÑам MySQL и ÑоÑмиÑÑÑÑие подÑобнÑй оÑÑÐµÑ Ð¾Ð± Ð¸Ñ ÑабоÑе. ÐÑли один из ÑеÑвеÑов пеÑеÑÑÐ°ÐµÑ Ð¾ÑвеÑаÑÑ Ð½Ð° запÑоÑÑ, или загÑÑзка его пÑоÑеÑÑоÑа или иÑполÑзование опеÑаÑивной памÑÑи доÑÑÐ¸Ð³Ð°ÐµÑ Ð¿ÑеделÑного знаÑениÑ, ÑеÑевой мониÑÐ¾Ñ Ð¾ÑпÑавлÑÐµÑ ÑообÑение об ÑÑой пÑоблеме на web-инÑеÑÑÐµÐ¹Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸ÑÑÑаÑоÑа и даже вÑÐ²Ð¾Ð´Ð¸Ñ Ð½ÐµÐ±Ð¾Ð»ÑÑие гÑаÑики иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ»ÑÑевÑÑ Ð±ÑÑеÑов, ÑиÑла Ñоединений и Ñ.д.
ÐÑоме Ñого, пÑедоÑÑавлÑÑÑÑ ÐºÐ¾Ð½ÑÑлÑÑаÑивнÑй ÑеÑÐ²Ð¸Ñ MySQL, коÑоÑÑй ÑканиÑÑÐµÑ MySQL-ÑеÑÐ²ÐµÑ Ð¸ ÑоÑмиÑÑÐµÑ ÑпиÑок возможнÑÑ Ð¿Ñоблем: Ð½ÐµÑ Ð»Ð¸ пÑавил, коÑоÑÑми Ð²Ñ Ð¿ÑенебÑегаеÑе? ÐÐ¾Ð·Ð¼Ð¾Ð¶Ð½Ñ Ð»Ð¸ пÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑÑÑÑ Ð² ваÑей конÑигÑÑаÑии? СамÑм полезнÑм из ÑÐ°ÐºÐ¸Ñ ÑеÑвиÑов ÑвлÑÑÑÑÑ ÑовеÑÑ Ð¿Ð¾ иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи: ведеÑÑÑ Ð½Ð°Ð±Ð»Ñдение за иÑполÑзованием бÑÑеÑов и даÑÑÑÑ ÑекомендаÑии по опÑимизаÑии наÑÑÑоек â вÑÑ ÑмÑÑÐ²ÐµÐ½Ð½Ð°Ñ ÑабоÑа вÑноÑиÑÑÑ Ð·Ð° Ñкобкиâ¦
ÐаÑÑÑойки Ð´Ð»Ñ Ð¾ÑделÑнÑÑ Ð¿Ñиложений
ÐмеÑÑе Ñ MySQL Enterprise вам пÑедоÑÑавлÑеÑÑÑ Ð´Ð¾ÑÑÑп к ÑлÑжбе поддеÑжки пÑи возникновении ÐºÐ°ÐºÐ¸Ñ -либо пÑоблем, однако пока Ð²Ñ Ð½Ðµ оÑобо налегаеÑе на MySQL (оÑобенно Ñ ÑепликаÑией), пÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ð²ÑÑд ли возникнÑÑ. РлÑбом ÑлÑÑае, ÑледÑÐµÑ Ð¿Ð¾Ð¿ÑобоваÑÑ 30-дневнÑÑ ÑеÑÑовÑÑ Ð²ÐµÑÑÐ¸Ñ MySQL Enterprise â ÑÑÑановиÑÑ ÐµÐµ на Ñвой ÑеÑвеÑ, даÑÑ ÐµÐ¹ поÑабоÑаÑÑ Ð½ÐµÑколÑко дней на наÑÑоÑÑем ÑайÑе и поÑмоÑÑеÑÑ, не поÑовеÑÑÐµÑ Ð»Ð¸ ÑÑа ÑиÑÑема ÑÑо-нибÑÐ´Ñ Ð¿Ð¾Ð»ÐµÐ·Ð½Ð¾Ðµ.
ÐекоÑоÑÑе ÑложнÑе пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð½Ð° PHP ÑодеÑÐ¶Ð°Ñ Ð²ÑÑÑоеннÑе ÑÑедÑÑва опÑимизаÑии, помогаÑÑие ÑÑкоÑиÑÑ Ð¸Ñ Ð²Ñполнение, но еÑли Ð²Ñ Ð¿Ð¾Ð»ÑзÑеÑеÑÑ Zend Performance, Ñо поÑÑаÑайÑеÑÑ Ð½Ðµ вмеÑиваÑÑÑÑв его ÑабоÑÑ. ÐапÑимеÑ, MediaWiki (пÑиложение, на базе коÑоÑого ÑабоÑÐ°ÐµÑ Wikipedia) Ð¸Ð¼ÐµÐµÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ ÐºÑÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑÑÑÐ°Ð½Ð¸Ñ (опÑÐ¸Ñ memcache). «СкомпилиÑованнÑе» ÑÑÑаниÑÑ Ñ ÑанÑÑÑÑ Ð² опеÑаÑивной памÑÑи и пÑи Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑи извлекаÑÑÑÑ Ð¾ÑÑÑда. ÐÑо Ð¼Ð¾Ð¶ÐµÑ ÑеалÑно ÑвелиÑиÑÑ Ð¿ÑоизводиÑелÑноÑÑÑ, Ñак как MediaWiki â кÑÑпное пÑиложение, оÑÐµÐ½Ñ ÑÑебоваÑелÑное к ÑиÑÑемнÑм ÑеÑÑÑÑам пÑи пÑеобÑазовании кода из ноÑаÑии wiki в HTML.
Ðо дело в Ñом, ÑÑо Zend Platform ÑпоÑобно обеÑпеÑиÑÑ Ð³Ð¾Ñаздо лÑÑÑее кÑÑиÑование, Ñем MediaWiki, и, обÑединив кÑÑи, можно иÑполÑзоваÑÑ Ð¾Ð¿ÐµÑаÑивнÑÑ Ð¿Ð°Ð¼ÑÑÑ Ð½Ð°Ð¸Ð»ÑÑÑим обÑазом. ÐомниÑе, ÑÑо memcache â ÑÑо обÑий ÑпоÑоб кÑÑиÑованиÑ, Ñогда как Zend Platform пÑÐµÐ´Ð»Ð°Ð³Ð°ÐµÑ ÑеÑение, напÑавленное на PHP: она кÑÑиÑÑÐµÑ ÑкомпилиÑованнÑе ÑкÑипÑÑ Ð¸ вÑводимÑе ÑÑÑаниÑÑ Ð¸ авÑомаÑиÑеÑки оÑÑÐ»ÐµÐ¶Ð¸Ð²Ð°ÐµÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð½Ð° ÑайÑе, поÑÑÐ¾Ð¼Ñ Ð²Ñегда понÑÑно, когда нÑжно обновиÑÑ ÐºÑÑ. Ð MediaWiki Ð²Ñ Ð² лÑÑÑем ÑлÑÑае полÑÑаеÑе кÑÑ Ð²Ñвода, коÑоÑÑй не Ð¸Ð´ÐµÑ Ð½Ð¸ в какое ÑÑавнение.
ÐÑÑгие попÑлÑÑнÑе пÑоекÑÑ ÑодеÑÐ¶Ð°Ñ ÑазлиÑнÑе ÑÑедÑÑва опÑимизаÑии, коÑоÑÑе нÑжно изÑÑиÑÑ Ð±Ð¾Ð»ÐµÐµ внимаÑелÑно. ÐапÑимеÑ, Drupal ÑодеÑÐ¶Ð¸Ñ ÑÑедÑÑва опÑимизаÑии кÑÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¸ ÑжаÑÐ¸Ñ Ð´Ð°Ð½Ð½ÑÑ , но Ð¼Ñ Ð¾Ð¿ÑÑÑ Ð¶Ðµ Ñекомендовали Ð±Ñ Ð²Ð°Ð¼ оÑÑавиÑÑ ÐºÑÑиÑование оÑклÑÑеннÑм (как по ÑмолÑаниÑ), заÑо попÑобоваÑÑ Ð²ÐºÐ»ÑÑиÑÑ ÑжаÑие CSS. Ðо и поÑле внеÑÐµÐ½Ð¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹ вÑегда ÑнимайÑе конÑÑолÑнÑе Ñ Ð°ÑакÑеÑиÑÑики, ÑÑÐ¾Ð±Ñ ÑбедиÑÑÑÑ Ð² Ñом, ÑÑо Ð²Ñ ÑлÑÑайно не замедлили ÑабоÑÑ ÑиÑÑемÑ.
ÐÑак, наÑе кÑаÑкое ÑÑководÑÑво по опÑимизаÑии web-ÑеÑвеÑа подоÑло к конÑÑ. ÐÑименив ÑÑи наÑÑÑойки, Ð²Ñ ÑможеÑе пеÑежиÑÑ Ð¸ÑпÑÑание не ÑолÑко Slashdotâом, но и Slashdotâом в ÑоÑеÑании Ñ Digg, StumbleUpon, Furl, Reddit, Delicious и дÑÑгими кÑÑпнÑми ÑайÑами â на деле Ð²Ð°Ñ Ð¾Ð³ÑаниÑÐ¸Ð²Ð°ÐµÑ Ð»Ð¸ÑÑ Ð¾Ð±Ñем опеÑаÑивной памÑÑи и ÑаÑÑоÑа пÑоÑеÑÑоÑа. Ðам оÑÑалоÑÑ ÑолÑко пÑидÑмаÑÑ ÑÑо-нибÑÐ´Ñ ÑÑакое, ÑÑÐ¾Ð±Ñ Ð²Ð°Ñ ÑÐ°Ð¹Ñ Ð·Ð°ÑвеÑилÑÑ Ð½Ð° Slashdot, а Ð²Ð¾Ñ Ñ ÑÑим, боÑÑÑ, Ñ Ð¿Ð¾Ð¼Ð¾ÑÑ Ñже не ÑмогÑ⦠LXF