LXF97:Пережить Slashdot-эффект
Строка 1: | Строка 1: | ||
− | == | + | http://www.textboclazel.com |
+ | ==Ðак ÑделаÑÑ Slashdotâо-ÑпоÑнÑм Ð²Ð°Ñ ÑеÑвеÑ== | ||
− | : | + | : ÐÐ°Ñ web-ÑеÑÐ²ÐµÑ Ð¿Ð¾Ð´Ð¾Ñвал ÑилÑ, оÑÐ±Ð¸Ð²Ð°Ñ Ð½Ð°Ð¿Ð»Ñв поÑеÑиÑелей â аж по два обÑаÑÐµÐ½Ð¸Ñ Ð² ÑекÑндÑ? '''Ðол ХадÑон''' покажеÑ, как его излеÑиÑÑ. |
− | :: ''' | + | :: '''ÐÑедÑпÑеждение: до ÑÑаÑÑа''' |
− | :: ''' | + | :: '''ÐнеÑение изменений в наÑÑÑойки ваÑего ÑеÑвеÑа Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑивеÑÑи к непÑеÑказÑемÑм поÑледÑÑвиÑм. ÐÑ ÑовеÑÑем иÑполÑзоваÑÑ Ð´Ð»Ñ ÑÑиÑ
ÑеÑÑов не занÑÑÑй в оÑновной деÑÑелÑноÑÑи ÑеÑÐ²ÐµÑ Ð¸ пеÑед внеÑением лÑбÑÑ
изменений в наÑÑÑойки делаÑÑ ÑезеÑвнÑÑ ÐºÐ¾Ð¿Ð¸Ñ Ð²ÑеÑ
Ñайлов ÑиÑÑемÑ. ÐоÑле Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð½Ð°ÑÑÑоек Apache/MySQL не забÑдÑÑе пеÑезапÑÑÑиÑÑ ÑеÑвиÑÑ, ÑÑÐ¾Ð±Ñ Ð½Ð¾Ð²Ñе паÑамеÑÑÑ Ð²ÑÑÑпили в ÑилÑ''' |
− | Digg, Reddit, Delicious, Furl, Newsvine | + | 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'' |
− | | | + | |СодеÑжание=ÐÐ°Ñ ÑеÑÐ²ÐµÑ ''Apache'' Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾Ð´Ð´ÐµÑживаÑÑ Ð½Ðµ более 256 одновÑеменнÑÑ
Ñоединений. ÐÑо много, но недоÑÑаÑоÑно Ð´Ð»Ñ Ð¿Ð¾Ð±ÐµÐ´Ñ Ð½Ð°Ð´ Slashdotâом, поÑÑÐ¾Ð¼Ñ Ð²Ð°Ñа ÑÐµÐ»Ñ â обÑабоÑаÑÑ ÑÑи запÑоÑÑ ÐºÐ°Ðº можно бÑÑÑÑее, ÑÑÐ¾Ð±Ñ Ðº ÑеÑвеÑÑ Ð¼Ð¾Ð³Ð»Ð¸ подÑоединиÑÑÑÑ Ð´ÑÑгие полÑзоваÑели. Ðднако Ð²Ð°Ñ ÑеÑÐ²ÐµÑ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð½Ðµ наÑÑÑоен на обÑабоÑÐºÑ Ñакого колиÑеÑÑва одновÑеменнÑÑ
Ñоединений â заглÑниÑе в Ñайл наÑÑÑоек ''Apache'' ÑÑÐ°Ð·Ñ Ð¿Ð¾Ñле наÑÑÑоек модÑÐ»Ñ ''mpm_prefork'' и пÑовеÑÑÑе знаÑÐµÐ½Ð¸Ñ Ð¿Ð°ÑамеÑÑов '''StartServers, MaxClients''' и '''MaxRequestsPerChild'''. ÐеÑвÑй опÑеделÑÐµÑ ÐºÐ¾Ð»Ð¸ÑеÑÑво ÑеÑвеÑов, ÑоздаваемÑÑ
пÑи запÑÑке ÑеÑвеÑа, вÑоÑой â колиÑеÑÑво ÑеÑвеÑов, Ð´Ð»Ñ ÐºÐ¾ÑоÑÑÑ
ÑазÑеÑен запÑÑк, и ÑÑеÑий â ÑколÑко запÑоÑов должен обÑабаÑÑваÑÑ ÐºÐ°Ð¶Ð´Ñй ÑеÑвеÑ, пÑежде Ñем он бÑÐ´ÐµÑ ÑнÑÑ. ÐÑли нагÑÑзка ваÑего ÑайÑа вÑÑока, можно ÑвелиÑиÑÑ Ð·Ð½Ð°Ñение '''StartServers''' до '''32''', пÑи ÑÑом ÑбедивÑиÑÑ, ÑÑо знаÑение '''MaxClients''' Ñакже вÑÑокое. |
− | + | Ðднако здеÑÑ ÐµÑÑÑ Ð¾Ð´Ð½Ð¾ ÑÑловие: ÑеÑÐ²ÐµÑ ''MySQL'' Ð¼Ð¾Ð¶ÐµÑ Ð¾Ð±ÑабаÑÑваÑÑ Ð¾Ð³ÑаниÑенное колиÑеÑÑво Ñоединений. РеÑли ÑеÑвеÑов ''Apache'' болÑÑе, Ñем Ñоединений ''MySQL'', Ñо Ñзкое меÑÑо ÑиÑÑÐµÐ¼Ñ ÑмеÑаеÑÑÑ Ðº ''MySQL'', и вам нÑжно ÑвелиÑиÑÑ ÐºÐ¾Ð»Ð¸ÑеÑÑво Ñоединений в наÑÑÑойкаÑ
ÑеÑвеÑа ''MySQL''. | |
− | | | + | |ШиÑина=300px}} |
− | + | ÐÑе ÑÑо Ñ
оÑоÑо, но вÑпомним, ÑÑо ''Apache'' поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð½Ðµ более 256 одновÑеменнÑÑ
Ñоединений. Так ÑÑо еÑли пÑÑаÑÑÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑиÑÑÑÑ 1000 полÑзоваÑелей, Ñо ''Apache'' оÑкÑÐ¾ÐµÑ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ Ð´Ð²ÑмÑÑÑами пÑÑÑÑдеÑÑÑÑÑ ÑеÑÑÑÑ Ð¸Ð· ниÑ
, обÑабоÑÐ°ÐµÑ Ð¸Ñ
запÑоÑÑ Ð½Ð° вÑе ÑÑÑаниÑÑ Ð¸ каÑÑинки, поÑом оÑÑÐ°Ð²Ð¸Ñ Ñоединение оÑкÑÑÑÑм на 15 ÑекÑнд на ÑлÑÑай, еÑли клиенÑÑ Ð·Ð°ÑÑебÑÑÑ ÐµÑе ÑÑо-либо, и, наконеÑ, закÑÐ¾ÐµÑ Ð¸Ñ
. ТÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ пеÑейÑи к обÑлÑÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ð´ÑÑгиÑ
полÑзоваÑелей. ÐдеÑÑ ÐµÑÑÑ Ð´Ð²Ðµ оÑновнÑе пÑоблемÑ. Ðо-пеÑвÑÑ
, глÑпо ÑоÑ
ÑанÑÑÑ Ñоединение оÑкÑÑÑÑм в ÑеÑение 15 ÑекÑнд, когда его ждÑÑ ÑоÑни дÑÑгиÑ
полÑзоваÑелей. Ðо-вÑоÑÑÑ
, пÑиоÑиÑÐµÑ Ð·Ð°Ð³ÑÑзки изобÑажений над загÑÑзкой ÑодеÑжимого â ÑÑÑка непÑавилÑÐ½Ð°Ñ Ð¿Ð¾ ÑÑÑи. ÐÑли оÑклÑÑиÑÑ Ð¿Ð¾Ð´Ð´ÐµÑÐ¶ÐºÑ ''KeepAlive'', Ñо Ñайл жÑÑнала запÑоÑов бÑÐ´ÐµÑ Ð²ÑглÑдеÑÑ Ð¿ÑимеÑно Ñак: | |
− | '''User 1 | + | '''User 1 запÑоÑил index.html''' |
− | '''User 2 | + | '''User 2 запÑоÑил index.html''' |
− | '''User 3 | + | '''User 3 запÑоÑил index.html''' |
− | '''User 1 | + | '''User 1 запÑоÑил foo.jpg''' |
− | '''User 2 | + | '''User 2 запÑоÑил foo.jpg''' |
− | '''User 3 | + | '''User 3 запÑоÑил foo.jpg''' |
− | '''User 4 | + | '''User 4 запÑоÑил index.html''' |
− | '''User 1 | + | '''User 1 запÑоÑил bar.jpg''' |
− | '''User 2 | + | '''User 2 запÑоÑил bar.jpg''' |
− | '''User 3 | + | '''User 3 запÑоÑил bar.jpg''' |
− | '''User 4 | + | '''User 4 запÑоÑил foo.jpg''' |
− | '''User 4 | + | '''User 4 запÑоÑил bar.jpg''' |
− | + | ÐÑо кÑда ÑпÑаведливее, и веÑоÑÑноÑÑÑ Ñого, ÑÑо бÑÐ´ÐµÑ Ð¾Ð±ÑлÑÐ¶ÐµÐ½Ñ Ð²Ñе полÑзоваÑели, а не неÑколÑко пÑиоÑиÑеÑнÑÑ
, намного вÑÑе. УбедилиÑÑ? Так и должно бÑло бÑÑÑ! ЧÑÐ¾Ð±Ñ Ð¾ÑклÑÑиÑÑ Ð¿Ð¾Ð´Ð´ÐµÑÐ¶ÐºÑ ''KeepAlive'', оÑкÑойÑе Ñайл наÑÑÑоек ''Apache'' (обÑÑно '''/etc/httpd/httpd.conf''' или '''/etc/apache2/apache2.conf''') и измениÑе ÑÑÑÐ¾ÐºÑ | |
<code> | <code> | ||
Строка 64: | Строка 65: | ||
</code> | </code> | ||
− | + | на ÑÑÑÐ¾ÐºÑ | |
<code> | <code> | ||
Строка 70: | Строка 71: | ||
</code> | </code> | ||
− | + | ÐоÑле пеÑезапÑÑка ''Apache'' ÑазниÑÑ Ð² ÑкоÑоÑÑи Ð²Ñ Ð¿Ð¾ÑÑи не замеÑиÑе. Ðо когда наÑÑÑÐ¿Ð¸Ñ ÐºÑиÑиÑеÑкий Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð¸ ваÑа иÑÑоÑÐ¸Ñ ÑÑÐ°Ð½ÐµÑ Ð¿ÐµÑвой на Slashdot, Ñогда Ð²Ñ Ð¿Ð¾ÑÑвÑÑвÑеÑе ÑазниÑÑ. | |
− | === | + | ===ÐÑнаÑÑка PHP=== |
− | + | ÐÑак, ''Apache'' заÑабоÑал на полной ÑкоÑоÑÑи; Ð¼Ñ Ð¼Ð¾Ð¶ÐµÐ¼ обÑаÑиÑÑ Ð½Ð°Ñ Ð²Ð·Ð³Ð»Ñд на PHP, на коÑоÑом напиÑано болÑÑинÑÑво попÑлÑÑнÑÑ
web-ÑайÑов. С PHP ÑвÑÐ·Ð°Ð½Ñ Ð´Ð²Ðµ оÑновнÑе пÑоблемÑ: | |
− | * 1 | + | * 1 ÐÑо инÑеÑпÑеÑиÑÑемÑй ÑзÑк, и ÑкÑÐ¸Ð¿Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ компилиÑоваÑÑÑÑ ÐºÐ°Ð¶Ð´Ñй Ñаз, когда запÑаÑиваеÑÑÑ ÑÑÑаниÑа. Ðак ни ÑÑÑанно, вÑÐµÐ¼Ñ ÐºÐ¾Ð¼Ð¿Ð¸Ð»ÑÑии ÑаÑÑо гоÑаздо болÑÑе вÑемени вÑполнениÑ. |
− | * 2 | + | * 2 Ðод многиÑ
попÑлÑÑнÑÑ
пÑоекÑов оÑÑавлÑÐµÑ Ð¶ÐµÐ»Ð°ÑÑ Ð»ÑÑÑего или ÑлиÑком ÑаздÑÑ. ÐÑимеÑами поÑледнего могÑÑ ÑлÑжиÑÑ ''PHPBB'' и ''PostNuke''. Ðо даже еÑли каÑеÑÑво кода оÑÐµÐ½Ñ Ð²ÑÑокое (напÑимеÑ, ''MediaWiki'' или ''Drupal''), пеÑÐ²Ð°Ñ Ð¿Ñоблема вÑе Ñавно оÑÑаеÑÑÑ. |
− | + | ÐÑÑÑ Ð¸ еÑе одна пÑоблема, но Ð¾Ñ Ð½ÐµÐµ обÑÑно ÑÑÑадаÑÑ ÑолÑко ÑиÑÑемнÑе админиÑÑÑаÑоÑÑ Windows: еÑли инÑеÑпÑеÑаÑÐ¾Ñ PHP запÑÑ- | |
− | + | каеÑÑÑ Ð² Ñежиме CGI, Ñо он ÑабоÑÐ°ÐµÑ ÑжаÑно медленно. Ð Linux PHP ÑаÑе вÑего Ñже ÑконÑигÑÑиÑован Ð´Ð»Ñ Ð·Ð°Ð¿ÑÑка как модÑÐ»Ñ ''Apache'', Ñак как ÑÑÐ¾Ñ ÑпоÑоб обеÑпеÑÐ¸Ð²Ð°ÐµÑ Ð½Ð°Ð¸Ð»ÑÑÑее бÑÑÑÑодейÑÑвие. ÐÑли Ð²Ñ Ð½Ðµ ÑвеÑенÑ, ÑоздайÑе Ñайл '''info.php''' в коÑневом каÑалоге web-ÑеÑвеÑа и добавÑÑе в него ÑледÑÑÑие ÑÑÑоки: | |
<code> | <code> | ||
Строка 89: | Строка 90: | ||
</code> | </code> | ||
− | + | ÐагÑÑзив ÑÑÐ¾Ñ Ñайл в бÑаÑзеÑе, в Ñазделе '''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''. ÐÑавда, Ñ Ð¾Ð³Ð¾Ð²Ð¾Ñкой: ÑÑÐ¾Ð±Ñ Ð´Ð¾ÑÑиÑÑ Ð¼Ð°ÐºÑималÑной пÑоизводиÑелÑноÑÑи, поÑÑебÑеÑÑÑ Ð¼Ð½Ð¾Ð³Ð¾ опеÑаÑивной памÑÑи. | |
− | {{ | + | {{ÐÑезка |
− | | | + | |Ðаголовок=ÐоÑÑоÑннÑе ÑоединениÑ: дÑÑг или вÑаг? |
− | | | + | |СодеÑжание=PHP позволÑÐµÑ ÑÑÑанавливаÑÑ Ð¿Ð¾ÑÑоÑннÑе ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ ÑеÑвеÑом ''MySQL''. Ðа пÑакÑике ÑÑо ознаÑаеÑ, ÑÑо каждÑй поÑок ÑеÑвеÑа ''Apache'' ÑÐ¾Ð·Ð´Ð°ÐµÑ Ñвое ÑобÑÑвенное Ñоединение Ñ Ð±Ð°Ð·Ð¾Ð¹ даннÑÑ
. ÐÑеимÑÑеÑÑво Ñакого подÑ
ода в оÑÑÑÑÑÑвии ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¸ закÑÑÑÐ¸Ñ Ñоединений каждÑй Ñаз, когда вÑполнÑеÑÑÑ Ð½Ð¾Ð²Ñй ÑкÑипÑ. Ðо ÑÑо Ñакже ознаÑаеÑ, ÑÑо ÑеÑÐ²ÐµÑ ''MySQL'' должен поддеÑживаÑÑ ÐºÐ°Ðº минимÑм ÑÑолÑко одновÑеменнÑÑ
Ñоединений, ÑколÑко запÑÑено ÑеÑвеÑов ''Apache''. ÐÑоÑое неÑдобÑÑво â многие пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ PHP не поддеÑживаÑÑ Ð¿Ð¾ÑÑоÑннÑÑ
Ñоединений; однако в ваÑем ÑобÑÑвенном коде Ñ ÑÑим легко ÑпÑавиÑÑÑÑ. |
− | | | + | |ШиÑина=300px}} |
− | + | ÐÑежде вÑего оÑкÑойÑе Ñайл наÑÑÑоек ''MySQL'' â обÑÑно ÑÑо '''/etc/my.cnf, /etc/mysql/my.cnf''' или ÑÑо-Ñо в ÑÑом Ñоде. РваÑем диÑÑÑибÑÑиве, ÑкоÑее вÑего, Ñже еÑÑÑ Ñайл Ñ Ð½Ð°ÑÑÑойками по ÑмолÑаниÑ, но могÑÑ Ð±ÑÑÑ Ð¸ ÑÐ°Ð¹Ð»Ñ Ñ Ð½Ð°ÑÑÑойками Ð´Ð»Ñ ÑазлиÑнÑÑ
Ñипов ÑеÑвеÑов. ÐапÑÑÑиÑе ''updatedb'' Ð´Ð»Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð»Ð¾ÐºÐ°Ð»Ñной Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
, заÑем вÑполниÑе командÑ: | |
<code> | <code> | ||
Строка 114: | Строка 115: | ||
</code> | </code> | ||
− | + | Ð Ubuntu ÑÑа команда наÑ
Ð¾Ð´Ð¸Ñ ÑÐ°Ð¹Ð»Ñ ÐºÐ¾Ð½ÑигÑÑаÑии ''MySQL'' в каÑалоге '''/usr/share/doc/mysql-server-5.0/examples''', напÑимеÑ, '''my-huge.cnf''' Ñ ÐºÐ¾Ð½ÑигÑÑаÑией MySQL Ð´Ð»Ñ ÐºÑÑпнÑÑ
ÑеÑвеÑов. ÐзÑÑÐ°Ñ ÑÑи ÑайлÑ, можно ÑзнаÑÑ Ð¼Ð½Ð¾Ð³Ð¾ нового, оÑобенно поÑомÑ, ÑÑо в наÑале Ñайла ÑодеÑжаÑÑÑ ÐºÐ¾Ð¼Ð¼ÐµÐ½ÑаÑии, поÑÑнÑÑÑие, Ð´Ð»Ñ ÐºÐ°ÐºÐ¸Ñ
ÑиÑÑем даннÑй Ñайл болÑÑе вÑего подойдеÑ. | |
− | + | ÐÑли по-пÑоÑÑомÑ, ÑÑиÑÑваÑÑ Ð½Ð°Ð´Ð¾ ÑледÑÑÑие паÑамеÑÑÑ: | |
− | * | + | * Ð Ð°Ð·Ð¼ÐµÑ ÐºÐ»ÑÑевого бÑÑеÑа. |
− | * | + | * Ð Ð°Ð·Ð¼ÐµÑ ÐºÑÑа запÑоÑов. |
− | * | + | * ÐаÑÑÑойки ÑовмеÑÑного вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñоков. |
− | * | + | * Ð Ð°Ð·Ð¼ÐµÑ ÐºÑÑа ÑаблиÑ. |
− | + | ÐÑо не полнÑй ÑпиÑок кÑÑей и бÑÑеÑов, иÑполÑзÑемÑÑ
''MySQL'', но ÑолÑко изменение именно ÑÑиÑ
паÑамеÑÑов пÑÐ¸Ð²Ð¾Ð´Ð¸Ñ Ðº замеÑнÑм | |
− | + | ÑезÑлÑÑаÑам. | |
− | + | ÐÑовеÑиÑÑ, доÑÑаÑоÑен ли обÑем клÑÑевого бÑÑеÑа, оÑÐµÐ½Ñ Ð¿ÑоÑÑо. СоединиÑеÑÑ Ñ ÑеÑвеÑом ''MySQL'' и в командной ÑÑÑоке вÑполниÑе ÑледÑÑÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ: | |
<code> | <code> | ||
− | SHOW STATUS LIKE | + | SHOW STATUS LIKE â%key_read%â; |
</code> | </code> | ||
− | + | ÐÑ Ð¿Ð¾Ð»ÑÑиÑе два ÑиÑла: '''Key_read_requests''' и '''Key_reads'''. ÐеÑвое показÑваеÑ, ÑколÑко Ñаз в базе даннÑÑ
пÑоизводилоÑÑ ÑÑиÑÑвание клÑÑа индекÑа, а поÑледний â ÑколÑко Ñаз клÑÑ Ð½Ðµ ÑдавалоÑÑ Ð½Ð°Ð¹Ñи в кÑÑе, и он ÑÑиÑÑвалÑÑ Ñ Ð´Ð¸Ñка. ÐÐ»Ñ Ð±Ð¾Ð»ÑÑинÑÑва ÑайÑов необÑ
одимо, ÑÑÐ¾Ð±Ñ Ð·Ð½Ð°Ñение '''Key_read_requests''' бÑло как можно болÑÑе по ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ñ '''Key_reads'''. ÐпÑеделиÑÑ ÑиÑловой показаÑÐµÐ»Ñ ÐºÐ°ÑеÑÑва можно Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð¿ÑоÑÑой ÑоÑмÑлÑ: | |
<code> | <code> | ||
− | 100 | + | 100 â ((Key_reads / Key_read_requests) * 100) |
</code> | </code> | ||
− | + | ÐÑ Ð±ÐµÑеÑе знаÑение '''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]'''. ÐапÑимеÑ, ÑекомендованнÑй минимÑм ÑоÑÑавлÑÐµÑ | |
<code> | <code> | ||
Строка 151: | Строка 152: | ||
</code> | </code> | ||
− | ''' | + | '''âMâ''' в MySQL ознаÑÐ°ÐµÑ ÐÐ; Ñаким обÑазом, ÑÑа ÑÑÑока ÑÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ ÑÐ°Ð·Ð¼ÐµÑ ÐºÑÑа в 16 ÐÐ. Ðо еÑли ÑÐ°Ð·Ð¼ÐµÑ Ð¾Ð¿ÐµÑаÑивной памÑÑи позволÑÐµÑ â а он должен â ÑÑÑановиÑе ÑÑо знаÑение в '''64M''', ÑÑÐ¾Ð±Ñ ÐºÑÑиÑовалоÑÑ Ð±Ð¾Ð»ÑÑе запÑоÑов. |
− | + | ÐоÑледние два паÑамеÑÑа лÑÑÑе ÑделаÑÑ Ð¿Ð¾Ð±Ð¾Ð»ÑÑе. ÐÐ»Ñ ÐºÑÑа ÑÐ°Ð±Ð»Ð¸Ñ Ð¾Ð±ÑÑно вполне доÑÑаÑоÑно '''128'''; еÑли Ñ Ð²Ð°Ñ Ð±Ð¾Ð»ÑÑе 128 ÑаблиÑ, пÑоÑÑо ÑвелиÑÑÑе ÑÑо ÑиÑло. ЧÑо каÑаеÑÑÑ Ð¾Ð´Ð½Ð¾Ð²Ñеменного вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñоков, Ñо ÑиÑло паÑаллелÑнÑÑ
поÑоков должно бÑÑÑ Ð²Ð´Ð²Ð¾Ðµ болÑÑе ÑиÑла ÑÐ´ÐµÑ Ð² ваÑем пÑоÑеÑÑоÑе â ÑÑало бÑÑÑ, Ð´Ð»Ñ ÑеÑÑÑеÑ
ÑÑдеÑного пÑоÑеÑÑоÑа ÑÑÑановиÑе его в '''8'''. ÐÐ¾Ñ Ð¸ вÑе: пеÑезапÑÑÑиÑе ÑеÑÐ²ÐµÑ ''MySQL'' Ð´Ð»Ñ Ð¿ÑинÑÑÐ¸Ñ Ð½Ð¾Ð²ÑÑ
наÑÑÑоек и наÑлаждайÑеÑÑ Ð¾Ð±ÑеÑенной ÑкоÑоÑÑÑÑ! | |
− | === | + | ===УлÑÑÑеннÑй мониÑоÑинг MySQL=== |
− | ''MySQL'' | + | ''MySQL'' вÑ
Ð¾Ð´Ð¸Ñ Ð² болÑÑинÑÑво диÑÑÑибÑÑивов, поÑÑÐ¾Ð¼Ñ Ð¼Ð½Ð¾Ð³Ð¸Ðµ не знаÑÑ, ÑÑо ÑÑÑеÑÑвÑÐµÑ Ð¿ÑевоÑÑ
Ð¾Ð´Ð½Ð°Ñ ÐºÐ¾Ð¼Ð¼ÐµÑÑеÑÐºÐ°Ñ Ð²ÐµÑÑÐ¸Ñ Ð¿ÑодÑкÑа â ''MySQL Enterprise''. ÐÑа веÑÑÐ¸Ñ Ð¸ÑполÑзÑÐµÑ ÑÐ¾Ñ Ð¶Ðµ ÑеÑвеÑ, ÑÑо и ''MySQL'', но Ñ Ð²ÑÑ
одÑÑими каждÑе ÑÑи меÑÑÑа пакеÑами обновлениÑ, ÑлÑжбой поддеÑжки, и â главное â ÑеÑевÑм мониÑоÑом ''MySQL''. ÐÑо оÑÐµÐ½Ñ ÑолковÑй Ð½Ð°Ð±Ð¾Ñ Ð¿ÑогÑамм, коÑоÑÑй локалÑно запÑÑÐºÐ°ÐµÑ ÑобÑÑвеннÑй web-ÑеÑÐ²ÐµÑ Ð¸ ÑеÑÐ²ÐµÑ ''MySQL'', подклÑÑаемÑе ко вÑем оÑÑалÑнÑм ÑеÑвеÑам ''MySQL'' и ÑоÑмиÑÑÑÑие подÑобнÑй оÑÑÐµÑ Ð¾Ð± иÑ
ÑабоÑе. ÐÑли один из ÑеÑвеÑов пеÑеÑÑÐ°ÐµÑ Ð¾ÑвеÑаÑÑ Ð½Ð° запÑоÑÑ, или загÑÑзка его пÑоÑеÑÑоÑа или иÑполÑзование опеÑаÑивной памÑÑи доÑÑÐ¸Ð³Ð°ÐµÑ Ð¿ÑеделÑного знаÑениÑ, ÑеÑевой мониÑÐ¾Ñ Ð¾ÑпÑавлÑÐµÑ ÑообÑение об ÑÑой пÑоблеме на |
− | web- | + | web-инÑеÑÑÐµÐ¹Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸ÑÑÑаÑоÑа и даже вÑÐ²Ð¾Ð´Ð¸Ñ Ð½ÐµÐ±Ð¾Ð»ÑÑие гÑаÑики иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ»ÑÑевÑÑ
бÑÑеÑов, ÑиÑла Ñоединений и Ñ.д. |
− | + | ÐÑоме Ñого, пÑедоÑÑавлÑÑÑÑ ÐºÐ¾Ð½ÑÑлÑÑаÑивнÑй ÑеÑÐ²Ð¸Ñ ''MySQL'', коÑоÑÑй ÑканиÑÑÐµÑ ''MySQL''-ÑеÑÐ²ÐµÑ Ð¸ ÑоÑмиÑÑÐµÑ ÑпиÑок возможнÑÑ
пÑоблем: Ð½ÐµÑ Ð»Ð¸ пÑавил, коÑоÑÑми Ð²Ñ Ð¿ÑенебÑегаеÑе? ÐÐ¾Ð·Ð¼Ð¾Ð¶Ð½Ñ Ð»Ð¸ пÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑÑÑÑ Ð² ваÑей конÑигÑÑаÑии? СамÑм полезнÑм из ÑакиÑ
ÑеÑвиÑов ÑвлÑÑÑÑÑ ÑовеÑÑ Ð¿Ð¾ иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи: ведеÑÑÑ Ð½Ð°Ð±Ð»Ñдение за иÑполÑзованием бÑÑеÑов и даÑÑÑÑ ÑекомендаÑии по опÑимизаÑии наÑÑÑоек â вÑÑ ÑмÑÑÐ²ÐµÐ½Ð½Ð°Ñ ÑабоÑа вÑноÑиÑÑÑ Ð·Ð° Ñкобки⦠| |
− | {{ | + | {{ÐÑезка |
− | | | + | |Ðаголовок=ТеÑÑиÑование нагÑÑзки |
− | | | + | |СодеÑжание=ÐÑежде Ñем вноÑиÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² конÑигÑÑаÑÐ¸Ñ ''Apache'' или ''MySQL'', ÑнимиÑе Ñ
аÑакÑеÑиÑÑики ваÑего ÑайÑа. ÐÑÑÑий ÑпоÑоб ÑÑо ÑделаÑÑ â ÑÑо запÑÑÑиÑÑ Ð½Ð° дÑÑгом компÑÑÑеÑе ÑÑилиÑÑ ''ab'': она неÑколÑко ÑÑÑÑÑ Ñаз обÑаÑаеÑÑÑ Ðº ÑеÑвеÑÑ Ð¸ оÑÐµÐ½Ð¸Ð²Ð°ÐµÑ Ð²ÑÐµÐ¼Ñ Ð¾Ñклика. ÐÐ»Ñ Ð½Ð°Ñала запÑÑÑиÑе ÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ |
<code> | <code> | ||
Строка 170: | Строка 171: | ||
</code> | </code> | ||
− | + | Ðна оÑпÑÐ°Ð²Ð¸Ñ Ð½Ð° Ð²Ð°Ñ ÑеÑÐ²ÐµÑ 10000 запÑоÑов, ÑазделеннÑÑ
на ÑÑо одновÑеменнÑÑ
Ñоединений. ÐлÑÑ '''-k''' ознаÑÐ°ÐµÑ Â«Ð¸ÑполÑзоваÑÑ Ð¿Ð¾Ð´Ð´ÐµÑÐ¶ÐºÑ ''KeepAlive''», ÑÑо Ð¿Ð¾Ð·Ð²Ð¾Ð»Ð¸Ñ Ð²Ð°Ð¼ оÑениÑÑ Ñ
аÑакÑеÑиÑÑики ÑеÑвеÑа Ñ Ð¿Ð¾Ð´Ð´ÐµÑжкой ''KeepAlive'' и без нее. | |
− | | | + | |ШиÑина=300px}} |
− | === | + | ===ÐаÑÑÑойки Ð´Ð»Ñ Ð¾ÑделÑнÑÑ
пÑиложений=== |
− | + | ÐмеÑÑе Ñ ''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''' |
Версия 02:05, 23 мая 2009
|
|
|
Содержание |
Ðак ÑделаÑÑ 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