„Microsoft Corrupt Excel“: failas sugadintas ir jo negalima atidaryti - 2016, 2013

Turiu „WordPress“ svetainę, kuri tapo per didelė vienam serveriui. Turiu nuspręsti, ar turėčiau priglobti duomenų bazę išoriškai, t. Y. Nusipirkti kitą serverį DB, ar turėčiau priglobti vaizdus CDN.

Perkelti DB iš išorės yra greičiausias ir paprasčiausias sprendimas. Tai sumažins I / O ir RAM naudojimą, o tai labai padės. Kita vertus, visų vaizdų perkėlimas į kitą serverį (aš galvoju apie AWS S3 grupės naudojimą) reikš daug mažiau užklausų pagrindiniam serveriui ir aš neturiu atskirti svetainės ir DB. Tai, žinoma, labai sudėtinga procedūra, nes svetainėje yra kitų bendruomenių įrankių, leidžiančių žmonėms įkelti vaizdus.

Panašu, kad vaizdų perkėlimas į S3 duotų geriausią naudą, nes daugumoje puslapių yra daugiau nei 15 vaizdų, kai šoninėje juostoje atsižvelgiate į „naujausius įrašus“ ir kita. Tačiau, kadangi naršyklės talpykla įgalinta, tai gali būti ne taip reikšminga, kaip gali atrodyti iš pradžių. Dėl dinamiško, vartotojo valdomo šios svetainės pobūdžio negaliu talpinti DB užklausų, nes daugumoje yra prisijungimo prie vartotojų lentelės, kur ID = seanso vertė. Manau, kad tai gali būti naudingiausia DB. Žinoma, trūkumas yra tas, kad DB perkėlimas nuo localhost reiškia, kad turiu pateikti užklausą internete. Šiuo metu neįmanoma išsaugoti DB klasteryje ar bet kuriame vidiniame tinkle. DB bus nuotoliniame serveryje, o aš naudosiu jo viešąjį IP ryšiui palaikyti.

Paprastai tariant, vidutinei svetainei bus suteikta geriausia nauda, ​​jei galėsite pasirinkti tik 1. Visų vaizdų perkėlimas į nuotolinę vietą ir jų aptarnavimas per padomenį, pvz. images.mysite.com, ar turėčiau perkelti DB į savo serverį?

Šiuo metu turiu atskirą atskirą serverį su 2TB disku, 8 branduolių „xeon @ 2.7ghz“ ir 16 GB RAM. Turiu neribotą pralaidumą per 100 MB jungtį. Naujovinimo į kažką didesnio kaina yra beprotiški pinigai, aš galėčiau daugiau to paties serverio, kurį dabar turiu, už tą pačią kainą. Panašu, kad apache ir mysql užgrobia didžiąją dalį procesoriaus, tačiau apache aptarnauja visus vaizdus, ​​todėl čia yra mano problema.

  • Ką reiškia per didelis? Aš turiu omenyje, kad jūs minite per daug vaizdų, o tai yra gigabaitų dydžio problema, taigi ir papildomas pralaidumo naudojimas, bet tada jūs taip pat paminėjate duomenų bazių užklausas, dėl kurių kyla skaičiavimo galios problema.
  • Turiu omenyje, kad aparatinės įrangos reikalavimai, kuriuos turi svetainė, viršija tuos, kurie galimi serveryje. Vieta diske iš tikrųjų yra gera, svetainė yra apie 80 GB, o HDD yra 2 TB. Vis dėlto I / O kelia nerimą. Šiuo metu pagrindinė problema yra procesorius. tai smarkiai smogia 100%. Avinas ir įvesties / išvesties atstumas nėra toli
  • Ir kodėl negalima atnaujinti dabartinio serverio? Aš taip pat nemanau, kad vaizdų skaičius turi ką nors padaryti.
  • 1 Aha ... vietinis serveris, kurį turite tada ... Manau, kad turite tai išsiaiškinti savo klausimu. Kalbant apie jūsų klausimą, manau, kad vaizdai nėra jūsų problema. Turite aiškią skaičiavimo galios problemą. Jei būčiau buvęs tu, būčiau patikrinęs, kurie procesai iš tikrųjų naudoja tą procesorių, ir išspręsti mano problemas.
  • 1 Tik mano paskutiniai du centai ... php7 anksčiau išgelbėjo asilą didelėse svetainėse, galbūt, jei pamėginsite. php7 tikrai pagreitina reikalus ir yra mažiau alkanas procesoriaus.

Nėra jokios priežasties, kad tai turi būti vienaip ar kitaip. Sakyčiau, kad optimizuočiau abi. Jei turite daug vaizdų, CDN turi prasmę, neatsižvelgiant į tai, ką darote serveryje. Be to, net ir tuo atveju, jei problema bus išspręsta, geresnis duomenų bazės našumas apskritai yra naudingas, todėl rekomenduočiau spręsti abi galimybes.

Man labai patinka AWS įrankiai. Jie puikiai tinka už pinigus, kuriuos mokate, ir moka tik už tai, ką naudojate. Be to, jie turi puikų našumą, kai reikia atsisiųsti ir įkelti atsargines kopijas. Tačiau keletą kartų mačiau, kaip S3 kaušai buvo naudojami kaip CDN, atrodo, kad jie veikė ne taip gerai, kaip kiti CDN, todėl galbūt norėsite išbandyti įvairias CDN parinktis. Jei turite daug vartotojų įkeltų vaizdų, tam tikra papildinių integracija yra būtina.

Duomenų bazei nerekomenduoju turėti atskiro duomenų bazės serverio internete, jei tai lėtas ryšys. Kuo lėtesni jūsų duomenų bazės ryšiai, tuo daugiau išteklių turėsite susieti ir lėčiau bus įkeliami jūsų puslapiai. Bet tai nereiškia, kad neturite jokių galimybių. Jei negalite pridėti kito serverio, rekomenduočiau pridėti SSD diską. Jūs nenurodėte, ar jūsų diskas buvo SSD, ar ne, bet skamba, kad ne. „MySQL“ gali būti labai intensyvus įvesties / išvesties srityje, ir būtent tai SSD yra naudingi. Norėdami padidinti savo našumą, galite prijungti atskirą SSD diską, kurį naudojate tik „MySQL“. Aš padariau tą pakeitimą daugeliui klientų, norėdamas stebėti, kaip tai daro didelę įtaką.

Be to, sureguliuokite „MySQL“ diegimą. Tai dažniausiai užmirštas žingsnis, kuris gali duoti didelių patobulinimų. Įrankį galite pasiimti čia:

https://raw.github.com/major/MySQLTuner-perl/master/mysqltuner.pl

Štai straipsnis, kuris gali padėti jį naudoti:

https://www.percona.com/blog/2014/01/28/10-mysql-performance-tuning-settings-after-installation/

Niekada neskauda „WordPress“ parinkčių lentelėje patikrinti, ar nėra laikinų įrašų, kurie kartais gali sulėtinti reikalus.

Visa tai sakant, nemanykite, kad tai yra problemos. Patikrinkite, kur yra jūsų kliūtys. Pirmiau pateiktos yra tik geros, bendros rekomendacijos, tačiau norint sužinoti problemą būtina atlikti bandymus. Jei dar to nepadarėte, įdiekite „sysstat“ ir susipažinkite su jo naudojimu. Tai turėtų suteikti jums daugiau informacijos apie tai, ką iš tikrųjų veikia jūsų procesorius. Štai straipsnis, kuris gali padėti:

http://www.thegeekstuff.com/2011/03/sar-examples/

Man patinka bėgioti sar savaime nėra galimybių, kad suprastum, kur buvo mano didelis naudojimas. Štai asmeninė eilutė, kuria tikrinu naudojimąsi savaite:

(sar -u; for d in {1..7} ; do sar -u -f /var/log/sa/sa$(date -d'-$d day' +%d);done)|awk '$4~/20[1-2][0-9]/{d=$4}$9~/[0-9]/{print d' '$0}'|sort -nrk8|sort -nrk10|awk -v t='50' 'BEGIN{n='\033[0m';c='\033[1;31m';w='\033[1;33m'}$10~/[0-9]/{us=$5+$7;io=$8;id=$10;if (us>io){ioc=n;if (us>t){usc=c}else{usc=w}}else{usc=n;if (io>t){ioc=c}else{ioc=w}}printf '%s\tUser/System: %s%4.2f%s\tI/O: %s%4.2f%s\tIdle: %4.2f\n',$1' '$2' '$3,usc,us,n,ioc,io,n,id}'|tail -10 

Naudojimą suskirstau pagal „System / User“ ir „I / O“, nes manau, kad apskritai, jei tai yra pirmasis, tai problema yra geriau išspręsta sprendžiant PHP scenarijus, o jei jis yra vėlesnis, aš pirmiausia linkęs pažvelgti į MySQL. Jei jis susietas tik su procesoriumi, aš sutelkčiau dėmesį į pačių scenarijų optimizavimą, pvz., Galbūt pašalinsiu papildinius ir tt iotop patvirtinti kaltininką. Jei tai grynai RAM (patikrinkite su sar -q), tada galbūt pridėkite RAM, kitaip, ir SSD gali padėti. Žinoma, YMMV.

  • Gerai, todėl aš galiu pamatyti, ką aš galiu padaryti abiem pinigais. Tuo atveju, kai vaizdai saugomi nuotoliniame serveryje.Žinau, kad CDN yra kelias, tačiau jei S3 bus lėtas, ar geresnis sprendimas būtų išsinuomoti atskirą serverį ir įdėti vaizdus čia? Taigi blogai nustatykite apache standartiniame žiniatinklio serveryje ir nustatykite padomenio DNS, kad jis nukreiptų į jį, ir jis serveryje rodys mano vaizdus, ​​o ne S3. Aš žinau, kad CDN yra geresnis, bet norėčiau bent jau nustatyti centrinį tašką, kad pirmiausia juos visus išsaugotumėte.
  • @DanHastings Tai yra galimybė, tačiau CDN yra geresnė, nes tinklas yra paskirstytas. S3 nėra blogas ir būtų geresnis nei antrasis serveris. Mačiau, kad daugelis žmonių naudoja „MaxCDN“, ir manau, kad tai buvo tas vaizdas, kuris greičiausiai atrodė vaizdams. Jai yra „WordPress“ papildinys, kuris turėtų jį palengvinti.

Pirmasis žingsnis bus patikrinti serverį, kad sužinotumėte, kas naudoja daugiausiai sistemos išteklių per atmintį ir procesoriaus ciklus. „MySQL“ duomenų bazės serveris, priklausomai nuo ryšių skaičiaus, gali išeikvoti sistemos išteklius, todėl galite imtis kai kurių dalykų ...

  1. Perkelti duomenų bazę į atskirą serverį
    Tai darydami sumažinsite serverio apkrovą, kurią teikia duomenų bazės tarnyba. Jei įmanoma, bandykite pasirinkti debesų duomenų bazės platformą, nes ji turėtų būti lengvai valdoma staigių, bet trumpalaikių šuolių atveju.

  2. Perkelti vaizdus
    Perkeldami vaizdus į kitą platformą, pvz., S3 grupę, sumažinsite ryšių su savo serveriu skaičių, o tai savo ruožtu padės sumažinti ir sistemos apkrovą.

  • Savo klausime aš abu nurodžiau kaip sprendimus. Bandau išsiaiškinti, kas vyksta reikšmingiausiu našumu, jei galima pasirinkti tik vieną

Ką kiti sakė. Sužinokite, kur eina jūsų sistemos ištekliai. Tada ištaisykite šią problemą. Jei norite, kad jūsų biudžetas būtų tvarus, negalėtumėte aklai mesti bendros problemos.

Keista, kad viena „WordPress“ svetainė tokiu būdu įstringa. Tai gali būti konkretus modulis arba, kaip minėjo kiti, per didelis db skambutis.

Viename taške nurodote „localhost“. Tai neturėtų būti jokios viešosios žiniatinklio paslaugos dalis - tai turėtų atsirasti tik naudojant smėlio dėžę, prie kurios tiesiogiai prisijungėte kūrimo tikslais. Manau, jūs tiesiog norite pasakyti, kad nuorodos į vaizdus šiuo metu daro prielaidą, kad visos yra tame pačiame serveryje?

Tiesiog ką atkreipti dėmesį *

Jei planuojate, kokia įranga ir (arba) debesų ištekliai reikalingi jūsų projektui, „Excel“ lape ir išsiųsite jį į AWS. Jie atitiks jūsų tarifus ir greičiausiai juos sumažins, kad atitiktų jūsų „ekonomiškai efektyvų“ planą. Viskas, ko reikia, yra el. Paštas ir telefono skambutis. Be to, tokiu būdu galite gauti dinamiškai didėjančius savo projekto išteklius.

Kiek užklausų per sekundę matote? Aparatinė įranga yra gana gera ir, jei joje talpinama tik viena „WordPress“ svetainė, ji turėtų sugebėti valdyti didelį srautą, jei viskas nustatyta tinkamai, prieš galvodama apie didesnį serverių skaičių.

Paminėjote, kad apache reikalauja daug išteklių. Gal apsvarstykite galimybę pereiti prie „nginx“. Iš mano patirties tai žymiai sumažina išteklių naudojimą statinių failų užklausoms ir yra lengviau sukonfigūruojamas didelėms apkrovoms.

Taip pat turėtumėte patikrinti, kurios db užklausos naudoja daugiausiai išteklių.

dirbo už jus: Charles Robertson | Norite su mumis susisiekti?