Երբեմն լինում են օրեր, երբ ոչինչ չի գնում 🙂

Այդ դեպքում մեզ մնում է միայն հուսալ, որ վաղը ավելի լավ կլինի, քան այսօր է 🙂

Նախքան ես սկսեմ այս խմբին: ես նկատի ունեմ, ես շատ առաջ web-սերվերին, բայց այն ամենը, որ ես գրեմ, որ ես զգացել վերջին 2-3 ամիս. Վարչարարությունը ոմանք բավականին լարված VPS-ի հաճախելիության տվյալներով tyxo լավագույն 80 բայց մտնել top 70 ;). Այնպես որ, իմ մտքերը, որ այսքան ժամանակ անց ես ձեռք է բերել տարբեր են, սովորությունները եւ հասնել լավագույն պրակտիկայի այս կամ այն ձեւով (որպես կանոն, դժվար է) :D. Ես չեմ գրել, կամ պետք է մանրամասնել կոնֆիգուրացիա բոլոր, նույնիսկ. Ամենայն հավանականությամբ, ես կիսվել իրենց գաղափարներով, որպեսզի մտածել.

  1. Թարմացվել է ծրագրային ապահովման պարբերաբար. Apache, php mysql այն ամենը, ինչ նա ցանկանում է թարմացնել. Արդյոք, որ patched մինչեւ անցքեր сигурниста, արդյոք այն պատճառով, շտկելու սխալները կամ նոր հնարավորություններ. Միշտ պահեք ձեր ծրագրային համընթաց. Ընդհանուր առմամբ, հազվադեպ прокалывают մեկ սերվերի դիմումները, որպես կանոն, միջոցով անցքեր կոդը хостваните բաներ проткнуть, բայց չեն ապավինում դա.
  2. Apache – web server-իսկ ձեզ չի ցանկալի է ունենալ ավելի ակտիվ բաղադրիչների, քան նրանք, ովքեր իրապես օգտագործում. Որքան ավելի շատ մոդուլներ- դանդաղ աշխատանքը.
  3. Ավելի օգտվողների մեկ սերվերի վրա – опкод cache. Ժամանակից շուտ ես գրել այո zerdion անել գոհ թեստեր եւ տեսնել, թե իրական առավելությունները, այդ հմայքը. Իմ դեպքում ես ընտրել eAccelerator քանի որ իրական աշխատանքային միջավայրում, նա ցույց է տալիս լավ արդյունքներ, դնել բոլոր պարամետրերը նրան. Արագ լիցքավորման պակաս սննդի պաշարների, որ, համապատասխանաբար, այնքան ավելի շատ օգտագործողների համար.
  4. Ճնշում է ձեզ հետ առևտրով – gzip. The ամենադյուրին ճանապարհը, որպեսզի նվազեցնել իրական շարժումները, որոնք դուք անում եք gzip սեղմում http պատասխան հաճախորդին. Պն deflate սա լուծում է apache. Այլ http սերվերի, եւ ես չեմ ուսումնասիրել հարցը :). Իրական շուրջ 50% ես ընկա սեղմում երթեւեկության html,css-ը,js,xml. Ես պետք է ստուգել, եթե ես կարող եմ սեղմում և այլ բովանդակության հետաքրքիր կլինի. Քանի որ նկարները իրական բովանդակությամբ, ինչը դարձնում է ամենամեծ երթեւեկությունը կայքը.
  5. mysql серер – ես բարձր խորհուրդ են տալիս, եթե դուք չեք պարգեւատրվել տարբերակը 5.1 որպեսզի դա անել. Ընդհանուր առմամբ, Oracle-ը ունեն քիչ փորձ տվյալների բազաների հետ աշխատանքի 😆 եւ այդ փորձը նա խփեց նաև 5.1 ես չեմ փորձել այն տարբերակը 5.5 բայց դա планувам դառնալ առաջիկայում. Անշուշտ, արագացնել աշխատանքը sql հարցումների, կարող է լինել մի քիչ չի дотянул բեռը, բայց ոչ ավելի, քան 5-6% բայց ա դա և նոր ֆունկցիոնալ հնարավորությունները մշակողների համար գեղեցիկ. Նաեւ այնպիսի բաժիններ. Թարմացման ժամանակ համոզվեք, որ կարգավորել ձեր my.cfg Ոչ բոլոր հին տարբերակը վավեր, նաեւ լավ է հեռացնել հին գրադարանի, գոնե CentOS 5.5 կատարել խնդիրները Debian ինձ մոտ այնպիսի խնդիրներ. Ապա դուք տեսնում եք, mysql log-իսկ քանի, որ որոշ պարամետրեր ունեն տարբեր վերնագրեր և դուք կարող եք փոխել նրանց, եթե այն ժամանակ անցումը 5.5 չպետք է զարմանալ, թե ինչու չի палва կոնֆիգուրացիան.
  6. sql հարցումների. Անպայման ներառել տարբերակը գրելու համար slow query. Այդ ամսագրերում դուք կարող եք վերադարձնել տեղեկատվություն մշակողների համար, եթե դուք չեք համար դանդաղ հարցումներ, որպեսզի օպտիմալացնել. Որքան քիչ նման հարցումները քիչ բեռը սերվերի 😉
  7. Մի քիչ պաշտպանության – փոխել նավահանգստի լռելյայն ssh, այլ ոչ թե дерьмовой bots-երից, պետք է փորձել ձեզ, դուք. Apache նրա անվտանգությունը հետ mod_security շատ օգտակար մոդուլ ստիպում է ֆիլտրում բավականին shitni – sql inj, rfi-ն DDoS եւ այլ. Ոչ, դադարեցնել մեծ хахор, բայց, համենայնդեպս, ламерите կլինի նրանց отсее. PHP-ի լավ գաղափար է, որ պաշտպանել Suhosin. Դուք կարող եք տեղադրել որպես լրացուցիչ ընդլայնման կամ, պարզապես, որպես patch php կոդը. Ես անձամբ նախընտրում եմ պարզ է առաջին հայացքից ինձ թվում է.

Սկզբի համար սա այն բաները, որոնք ես. Շատ չեն, բայց, քանի որ ես կարծում եմ, որ ես բավականին օպտիմալացման սերվերի վրա, բայց շատերը միանգամայն կոնկրետ իրավիճակի և անիմաստ է բացատրել նրանց, ինչպես, օրինակ, лимитации cache, կամ էլ որպես գործընթաց կան հանել apache-դա. Հնարավոր է, որ ժամանակն է հիշել եւ դեռ բաներ, որոնք, ինչպես ասում են որոշ մանրուքներ են, որոնք տալիս են մեծ արդյունք է. Մեքենան շատ լավ օպտիմիզացված համեմատության համար նշենք, որ մենք անում ենք 20 հազար այցելու օր է, եւ մենք առավել ցածր vps պլան load time (ծանրաբեռնվածության ժամանակ էջերից, չի գերազանցում 1,5-2 վայրկյան, կամ, եթե նա դուրս է գալիս արտաքին աղբյուրներից գովազդ, հակառակ դեպքում ինքը տուն выплевывает համար վայրկյանից. Մարդիկ մերձավորի դիրքերից մեզ օպտիմիզացված սերվերների շատ ավելի մեծ է մեր ռեսուրսները, եւ ունենալ նույն արդյունքները. Ընդհանրապես օպտիմալացնել նրա մայրն ու հայրը գարեջուր խմելու 😆

ps Երգը փոքր-ինչ կապում է տեխնիկական եւ 😀

Գրեթե մեկ տարի ես աշխատել եմ, իմ democheto НУКИ. Այսօր ես ժամանակ, որպեսզի ամեն ինչ, քանի որ կային բազմաթիվ բաներ, որոնք շատ լավ. Ես ավելացրել է մի քիչ նոր ֆունկցիոնալ. Пренаредих կոդ, ավելի շատ գործառույթներ, այնպես, որ այն նվազել է եւ վերանայման դարձել է ավելի հարմար օգտվողի համար.

Հիմնական նոր ֆունկցիոնալությունը, որը ես signal trap-իսկ. Ինչ-որ պահի, երբ դուք միացնել ընդունիչ dreambox սատանա որոշել է սպանել նրան, եւ դրանով դադարեցումը գործընթացի մոնիտորինգի ինձ, որ ինքնին բավական տհաճ պահին. Թե ինչպես է պարզել, թե ինչ է տեղի ունենում, քանի որ տեղ ամսագրերում-դա безбожно քիչ է, եւ դուք պետք է կատարել բարդ սխեմայի հետ, ցանցային ռեսուրսները, որոնց հետ իմ գործը չէ. "Մեծ է գծի signal ծուղակ-a ունի հաճելի գույքը բաշ սցենարներ կալանման համար ազդանշանին արդյունքները, կամ այնպիսիք, ներկայացված նրանց kernel-a միջոցով kill ասենք 😉 եւ, այսպիսով, մենք կարող ենք կանխել որոշ անմիջապես հաջորդող իրադարձությունները. Միայն ավելացնեմ որ SIGKIL կամ սպանությունը -9 չի կարող կանգնեցնել ու կանխել, այնպես որ, դիզայն core. Նա դադարեցնում է իր PID անմիջականորեն ներկայացված. Այժմ համապատասխան կոդը

#trapping signals I know -9 dosent work but we try it just in case ; )
trap on_exit 0 14 1 2 9 13 15 6 8 4 3 11 5
on_exit () {
make_debug 10 #unexpected error
#reboot now if we hawe trapped signal
reboot -d 0
exit 0
}

Մեր առաջին տողը հայտարարում է, թե ինչ գործողություններ է ձեռնարկել եւ ինչ ազդանշանները կարող են прихващаме ավելի ազդանշանների մարդ ազդանշանները 😉 Այս դեպքում, ինձ հետաքրքրում է. Ինչպես երեւում է, հանգեցնում է մի պարզ функциика որ ստիպում է կարգաբերում հաղորդագրություն եւ reboot ընդունիչ. Անկասկած ճաշ, ինչը կհանգեցնի արդյունքների, որոնք ես ակնկալում եմ, քանի որ ես կարծում եմ, որ կանխում է սպանության kill -9 բայց ոչինչ չի խանգարում է փորձել.

Այլ խոշոր փոփոխություններ գործառույթների, շատ բաներ, որոնք կրկնվում են կոդի նրանց наблъсках հատկապես, որ մի քիչ տհաճ դիտելու, ոչ թե, որ հիմա դե - 😉 Ես թեթև դրամ վերադառնալու բաշ-ա – ես դնում return նույն գործառույթները, եւ ակնկալում են, վարքագծի, ինչպես եւ բոլոր այլ հայտնի ինձ ծրագրավորման լեզուներ, սակայն պարզվել է, որ return վերադարձնում է միայն ամբողջ արժեքներ, եւ դա առավելագույնը 2 😀 իսկ ես ուզում եմ, որ ինձ վերադարձնել string. Գոյություն տգեղ svinshtina. Լուծումը շատ պարզ է

#---cuted---

if [ $T -eq $N ]
 then
 echo "Cam is down! Reboot..."
make_debug 4 # cam is down
 else
echo $rcam
 fi

# ---cuted----

#finding real cam1
 rcam1=$(find_cam $cam1)

Առաջին մասը սա վերջը իմ գործառույթները և выплюнуть էխո արդյունքները. Հաշվի առնելով այն խառնաշփոթ վերջին տողերը վերը նշված հատվածի.

Ես կարծում եմ um, որ դա հետաքրքիր մի կտոր կոդը.

Ուզում եմ շնորհակալություն հայտնել ոգեշնչման 😉

http://www.youtube.com/watch?v=SilMJ0O13UI&feature=related