• Bannato User

    Internal Server Error, aiuto con Dreamhost e PS!

    Salve ragazzi,
    da qualche giorno i miei varii blog hostati su Dreamhost danno in continuazione Internal Server Error. Ho un Private Server con 265Mb di ram (28,80$ al mese) che oggi ho aggiornato a 304Mb per 30,40$ ma continuo ad avere que maledetto errore.
    Inviando una email a DH, mi hanno così risposto:

    *Hello,

    The reason you're experiences these errors on your sites is that your
    Private Server is running out of available allocated memory, as you can
    see here:

    ps11044:~# free -m
    total used free shared buffers cached
    Mem: 265 265 0 0 0 0
    -/+ buffers/cache: 265 0
    Swap: 265 215 49

    There are 0 MB free of memory to use to spawn new processes.
    You'll need to either, increase the available amount of memory

    Or attempt to reduce the total usage, I would suggest looking at this
    article for a good starting point:
    wiki.dreamhost.com/Finding_Causes_of_Heavy_Usage
    *
    Thanks!
    Brett G

    Allora, io sono proprio inesperto, è la prima volta che mi capita un problema del genere. Ho già installato un plugin sul mio blog che converte in cache tutte le pagine da php ad html in modo da ridurre le risorse hardware. Ha funzionato per qualche giorno ma adesso come se niente fosse, la situazione è peggiorata.

    Nel wiki (secondo link) mi viene chiesto di guardare il log, io l'ho fatto e ci sono un sacco di IP identici in successione.

    In una precedente email della settimana scorsa ecco la risposta:

    *It looks like miosito is getting hit pretty hard
    by Google Bot, and I would suggest blocking them from your domains:

    Top visitors by ip for: miosito
    186 93.42.146.76
    215 151.53.2.30
    330 93.41.170.142
    338 79.22.153.138
    475 217.203.142.12
    495 72.30.81.158
    735 79.41.44.28
    764 79.52.101.2
    1133 66.249.68.141
    2759 66.249.68.164*

    Come faccio a bloccarli? cosa devo scrivere nel file .htaccess?
    Quando nel wiki dice:

    Enter this command to see the IPs hitting the domain the most:
    cat access.log| awk '{print $1}' | sort | uniq -c |sort -n

    Dove devo inserire quel comando che non ho capito?

    Se c'è qualcuno con esperienza nel settore, che sarebbe in grado di ottimizzare database, trovare problemi e ridurre l'uso di risorse si faccia avanti. Sto impazzendo.
    Contattatemi anche via MP possibilità di ringraziamento in caso di aiuto con somme di denaro.

    Saluti, Andrea.


  • Moderatore

    Il comando che ti hanno suggerito va dato da terminale. Quindi ti collego al server via ssh e dai quel comando.

    Poi è necessario sapere un pò di cose.

    Innanzitutto che sistema operativo e che pannello di controllo hai ( se c'è il pannello ovviamente ).

    Infine se hai un programma di statistiche web installato basta dare un'occhiata alle statistiche per capire quanto traffico sta ricevendo il tuo sito.

    Infine bloccare Googlebot non è sempre un'opzione fattibile. Bloccarlo vuol dire perdere i posizionamenti che si hanno in Google.

    Se il sito ha molti contenuti e un discreto traffico, l'unica opzione fattibile sarebbe quella di spostarlo su un server più capace. Proprio a questo proposito tengo a precisare che se il VPS gira su Virtuozzo è molto probabile che l'hoster stia facendo overselling e sarebbe il caso di spostare il tutto almeno su un VPS Xen se non addirittura su un dedicato.

    Ho visto l'offerta di Dreamhost e si basa su Linux Vserver. Beh che dire non è una scelta molto appropriata e le performance sono disastrose come quelle dei sistemi Virtuozzo. Potevano almeno implementare il tutto su Linux KVM.


  • Bannato User

    Ciao, il sito ha circa 700 articoli in costante aumento e dalle 3000 alle 5000 visite giornaliere.
    Spostare tutto su un dedicato quanto mi costerebbe? Oppure su un hosting migliore? perchè su questo ci tengo 10 siti web e adesso pago 50$ al mese!

    Ah come faccio ad accedere via ssh?
    Nell'FTP di Dreamhost ci sta il log di tutti gli accessi e vedo molti ip ripetuti, qualcosa di impressionante!

    Come posso bloccarli, magari modificando .htaccess (cosa che so fare..almeno questo)? cosa dovrei scrivere?


  • Moderatore

    Da 3000 a 5000 visite con un vps???

    E' un puro suicidio, devi passare alla svelta ad un server serio. Inoltre non sono quanto altro traffico facciano gli altri 10 siti web, ma ad occhio e croce questo vps è un tantinello affollato.

    Riguardo l'accesso via ssh è un tipo di accesso via terminale. Quando hai preso il vps, dreamhost ti avrà sicuramente mandato i dati per l'accesso. In genere sono l'username e la password contenuti nella mail che ti hanno inviato.

    Basta usare un programma come Putty http://chiark.greenend.org.uk/~sgtatham/putty/ per connettersi via ssh al server.

    Nell'FTP di Dreamhost ci sta il log di tutti gli accessi e vedo molti ip ripetuti, qualcosa di impressionante!

    In che senso l'FTP? FTP è il protocollo per trasferire i file sul server tramite programmi come Filezilla.

    Intendi dire che hai guardato nei log del servizio ftp e ci sono strani accessi? In quel caso si tratta di un tentativo di hackerare il tuo server e allora è un bel problema.

    P.S. potresti postare degli screenshot dei log?


  • Bannato User

    @paolino said:

    Da 3000 a 5000 visite con un vps???

    E' un puro suicidio, devi passare alla svelta ad un server serio. Inoltre non sono quanto altro traffico facciano gli altri 10 siti web, ma ad occhio e croce questo vps è un tantinello affollato.

    Riguardo l'accesso via ssh è un tipo di accesso via terminale. Quando hai preso il vps, dreamhost ti avrà sicuramente mandato i dati per l'accesso. In genere sono l'username e la password contenuti nella mail che ti hanno inviato.

    Basta usare un programma come Putty per connettersi via ssh al server.

    In che senso l'FTP? FTP è il protocollo per trasferire i file sul server tramite programmi come Filezilla.

    Intendi dire che hai guardato nei log del servizio ftp e ci sono strani accessi? In quel caso si tratta di un tentativo di hackerare il tuo server e allora è un bel problema.

    P.S. potresti postare degli screenshot dei log?

    Ciao,
    ho messo il log qui e si riferisce alla cartella log presente dentro FTP: tekw.org/access.rar aprilo con Notepad++ (credo che tu lo sappia) o con un editor che supporti i vari linguagi di programmazione per vederlo correttamente.
    E' in .rar basta estrarre. Sono 1,15Mb.

    I dati SSh non li ho, cioè non ricordo questo tipo di dati ora guardo meglio.


  • Moderatore

    Effettivamente googlebot è molto attivo, però considerando la quantità di contenuti che hai è normale. Un sito del genere ha bisogno di google e quindi bloccarlo è fuori discussione.

    Se il sito è tekw.org, vedo che usi wordpress. Puoi attivare il caching in questo caso e almeno ridurre un pochino il carico sul sistema.

    Non ho notato nessun problema tipo ddos e altri attacchi di hacking, quindi è un problema fisiologico di un sito in crescita.

    Una prima soluzione è iscriversi Google webmaster tools, registrare il sito con loro e poi dal pannello di controllo del tuo account google impostare la frequenza di spidering di googleblot ad un valore basso.

    In questo modo ridurrai sensibilmente il carico da parte di Google.

    Però rimane sottinteso che devi trovare una nuova casa per il tuo sito, almeno per quello da 5000 visite.

    Si potrebbe abbassare ulteriormente il carico sulla ram sostituendo Apache con Nginx. Il problema è che un'operazione del genere implica un trasloco vero e proprio del sito verso un nuovo servizio httpd.

    Inoltre tieni presente che nel tuo caso il database ( penso sia mysql ) è molto sfruttato e consuma un mucchio di ram. Quindi il problema potrebbe benissimo essere legato al database.

    Anche in questo caso ogni intervento di ottimizzazione sarebbe inutile, perchè obiettivamente il traffico sul sito è tanto.

    Se riesci a trovare i dati per l'accesso ssh, prova ad analizzare la situazione col comando "top". Otterai informazioni sul consumo di cpu, ram, ecc.... da parte di ogni programma che gira sul server.


  • Bannato User

    @paolino said:

    Cut
    Ciao paolino,
    innanzitutto ti ringrazio immensamente per l'ottimo supporto che mi dai. Neanche il mio hosting a cui sto pagando 50$ al mese è così gentile e preparato.

    Allora, uso già il plugin Wp Super Cache per il caching delle pagine. le trasfroma da php in html in modo che ogni volta non debba generare una nuova pagina e consumare risorse hardware inutilmente. Ma nonostante tutto, le cose continuano ad andare sempre peggio.
    Sono partito con 265Mb di ram e andava bene, poi la cosa è iniziata a peggiorare di giorno in giorno. Aumentando sempre di più le risorse mi sembrava troppo eccessivo il consumo di Ram del server, più aumento e mi ne consuma, incredibile.

    Allora io non ho dati SSH, ho inviato una mail a DH per i dati di accesso e mi hanno risposto che non ho un account shell ma solo FTP. Adesso ho attivato quello shell e sto provando con putty ad entrare. Ecco scrivendo il comando top cosa appare:

    tekw.org/top.gif

    Sono le 2 di notte, l'uso sarà minore infatti tutta quella ram al momento non serve. Ecco invece l'uso del mese dal panel di DH:

    tekw.org/usage.gif

    Adesso cosa dovrei fare? Intanto vado in Google Webmaster Tool e riduco i boot. Poi?
    EDIT: va bene così per il bot: tekw.org/bot.gif


  • Moderatore

    Puoi provare a limitare le risorse di mysql e di apache.
    Limitando le risorse otterrai un effetto simile a quello attuale, ovvero gli utenti non ti raggiungono, ma almeno il server non esaurirà le risorse.
    Nello specifico devi guardare quanta ram usa mysql nelle sue impostazioni, il file di configurazione è /etc/my.cnf

    Una configurazione consigliata è questa
    [mysqld]
    port = 3306
    socket = /var/lib/mysql/mysql.sock
    skip-locking
    set-variable = key_buffer=16K
    set-variable = max_allowed_packet=1M
    set-variable = thread_stack=64K
    set-variable = table_cache=4
    set-variable = sort_buffer=64K
    set-variable = net_buffer_length=2K

    Ovviamente limitando questo tipo di memoria sql diventa più lento (e quindi il sito diventa più lento, però non dovresti avere timeout a nessun utente).

    Ovviamente se decidi di modificare i parametri, prima memorizza quelli attuali!

    Una volta modificato il file di configurazione devi fare ripartire mysql, via shell si fa con
    /etc/init.d/mysql restart
    e già vedrai qualcosa che cambia (in bene o in male).

    Consigliano anche di spegnere l'inno-db se non lo usi (non ho idea di cosa sia :1: con questa riga (l'header tra quadre è solo per farti capire dove mettere/cercare le righe, non va ripetuta)
    [mysqld]
    skip-innodb

    L'ottimizazione apache è più incasinata, se questa modifica a mysql tampona per il tempo che ti guardi attorno bene, altrimenti devi cercare su google "optimize apache low memory" e troverai diversi consigli, però se sbagli puoi trovarti con il servizio apache che si chiude (penso che sia già la tua situazione) o con client che riceveranno timeout.

    Ciao!


  • Moderatore

    Da quel che vedo è una pura e semplice questione di traffico.

    Il punto è che tu puoi limitare l'uso di risorse, oppure tener fuori questo o quel bot o addirittura porre vincoli agli utenti, però se il sito dev'essere accessibile non è una buona idea.

    Insomma un sito che due volte su tre dà errore scoraggerà l'utente e lo porterà ad andare altrove.

    Il secondo grafico è molto interessante. Ho visto che il 13 giugno è scoppiato il caos. Quel picco è al limite dell'assurdo. Dal 13 ad oggi cos'è successo invece?

    Lo chiedo perchè somiglia moltissimo a picchi tipici di DDOS.

    Allo stato attuale la cosa migliore da fare è prendere il file dei log che mi hai postato ieri e farlo analizzare da un software apposito tipo questo http://www.weblogexpert.com ( la versione lite è gratuita ).

    Così otterrai una lista degli IP che rompono di più. A quel punto potremo capire al 100% cosa sta effettivamente succedendo.

    Google probabilmente sta colpendo forte il tuo sito, però realisticamente questo vuol dire che ne ha un'ottima reputazione, il che si traduce in più visite e se hai pubblicità come Adsense sul sito, si traduce in più soldi guadagnati.

    Voglio dire, c'è gente che farebbe carte false per avere Google sempre presente sul proprio sito.


  • Bannato User

    @redsector: visto che non ho esperienza in questo tipo di modifiche preferisco evitare almeno per un pò.

    @paolino: ecco l'altro grafico: tekw.org/usage2.gif

    mentre io ho solo il private server per lo spazio web, non MySQL (che è condiviso credo). Attivando un PS per il database credete che la situazione possa migliorare? Cioè, le prestazioni saranno migliori e non ci sarà Internal Server Error oppure non cambia nulla?

    Non ho capito però quando costa un database SQL su server privato..

    Ho utilizzato il programma da te citato ma non vedo gl ip che si collegano di più, ci sono alcune voci tipo keyword più cercate, provenienza visite e via dicendo ma nessuna lista di "top visitors"

    Adesso il mio blog è tornato PR3, era stato penalizzato da biG ma ho inviato un email per chiarire un mio errore ed è tornato come prima quindi le visite adesso dovrebbero aumentare di un bel pò, come il posizionamento su google. Pensavo di o spostare un altro blog che ho sul mio server, che usa anche lui molta banda (ho un server su cirtexhosting da 15$ al mese che non utilizzo più. lo usavo solo per test), potrebbe essere una soluzione?


  • Moderatore

    Molto strano che il vps abbia un database mysql condiviso con altri vps.

    Prova ad accedere al vps via ssh e a dare il comando "ps -A | grep mysql", dovrebbe apparire mysqld. In questo caso è sicuro che il database si trova sul vps.

    Riguardo lo spostamento di altri siti, beh ovviamente aiuta.

    La cosa pazzesca sono quei picchi in determinate ore e giorni. Ma non sarà che dreamhost fa auditing? In pratica ogni giorno lancia bot che cerca di hackerare i siti per verificare se sono vulnerabili. Alcuni hoster lo fanno.

    Una cosa che potresti fare è iscriverti a Google analytics ( che è un servizio di statistiche free ) e usarlo per un paio di giorni sui tuoi siti per verificare con esattezza chi sono gli IP che sovraccaricano di più il vps.


  • Bannato User

    Se uso il comando da shell tekw.org/ps_x.gif mi ridà sotto la scritta ps11 ecc senza altro.

    Analytics l'ho messo un pò di tempo fa, però non mi dice gli IP, dice numero visite ed altre cose così nulla sugli IP, non dovrebbe bastare il LOG per vedere gli IP con più accessi?

    da quando ho ridotto l'accesso al bot di google il sito va giù di meno, ma la situazione resta comunque critica..

    Guardate il l'uso risorse SQL:
    tekw.org/sql.gif

    e della banda:
    tekw.org/band.gif

    Ora provo a spostare il secondo blog che usa più risorse su un'altro hosting sperando la cosa si risolva..


  • Moderatore

    La prima immagine non c'è, comunque dalla seconda si capisce che mysql gira sul vps, com'è giusto che sia.

    Comunque guardando i dati del traffico si tratta di numeri elevati, non gestibili da un vps di quel tipo.

    La memoria è poca, ma facendo due conti manco la cpu ce la fa un granchè. I picchi che si vedono nei grafici la dicono lunga. A proposito, quanti cicli cpu ha il tuo vps? Dovrebbe essere un'informazione che ti hanno datto in fase di signup, qualcosa del tipo 200Mhz, 300Mhz, ecc...


  • Bannato User

    Ciao, scusate per il ritardo ma sono stato super occupato.
    Allora ho spostato 7tv e adesso non ho più problemi di downtime. Forse era proprio quello a creare problemi.
    Ad ogni modo, vorrei cambiare hosting e prenderne uno che possa supportare diversi siti web, 2-3 che a breve diventeranno abbastanza grossi. Cosa mi consigliate? Un buon hosting?


  • Moderatore

    Puoi dare un'occhiata qui http://www.webhostingtalk.com/forumdisplay.php?f=36

    Da esperienze personali ti consiglio di scegliere un hoster inglese. I motivi sono maggiore vicinanza all'Italia anche in termini di rete ( e quindi tempi di risposta più veloci per gli utenti italiani ) e migliore infrastruttura di rete.

    Inoltre i loro carrier sono connessi direttamente a quelli statunitensi, quindi permettono un transito veloce anche da e verso gli USA.

    Un altro punto da valutare sono le prospettive di crescita per quei siti. Per quanto un server possa essere potente raggiungerà prima o poi il suo limite.

    Così come hai avuto questo problema con un vps potrebbe riproporsi più in là con un dedicato. Ad esempio un forum come questo gira su un dedicato e lo spreme fino all'osso. In un caso del genere nient'altro può essere messo su tale server.

    Il tuo caso potrebbe essere simile in futuro. Quindi potresti decidere già da adesso di avere un certo numero di server o di vps ( con xen preferibilmente ) su cui distribuire i vari siti.

    Però come ho detto questo va valutato in base alle prospettive di crescita dei siti e al budget che si ha a disposizione.


  • Bannato User

    Come budget al momento non oltre i 30€ al mese. Quindi non so cosa posso prenderci. PEr la crescita dei siti eh, questo è un problema. Ne ho 2-3 in via di sviluppo seriamente, e crede che entro pochi mesi arriveranno ad utilizzare molte risorse.

    Quindi per ora tekw va bene su questo e regge anche gli altri. Appena avrò bisogno di più risorse (Credo fra qualche mese) provvederò a cambiare server. Tempo fa avevo uno condiviso da 18€ su netsons ed era molto veloce nel caricare le pagine (però non reggeva niente..).

    Ho visto questa offerta, che te ne pare:
    netsons.com/index.php/hosting-professionale-dedicato.html

    Quando ci sono server dedicati tipo p4 3Ghz con 1Gb di ram sono buoni o meglio evitare?


  • Moderatore

    I pentium 4 sono abbastanza vecchiotti e ho visto picchi di cpu nel tuo caso preoccupanti.

    La miglior soluzione sarebbe un dual core con 1 GB o più di RAM.


  • Bannato User

    Ora a CPU non supera 1 di carico e la ram sta intorno a 100Mb.

    Era 7tv probabilmente che usava troppo.

    Grazie paolino dell'aiuto!

    Alla prossima.