Accessi multipli allo stesso PHP

Indirizzo

Nuovo Utente
20 Ago 2014
18
0
0
Buongiorno a tutti. Come ho scritto poco fa nella sezione di presentazione, ho molto da imparare (l'avreste comunque capito dalle domande che sto per fare :)) ma la volontà non manca.

A livello di programmazione ho esperienze con C/C++, mentre "lato WEB server" sono praticamente a digiuno.
E siccome sono a digiuno, ho iniziato con lo studiare il PHP e, per il momento, non ho ancora affrontato MySQL perchè non voglio confondermi più di tanto, e quindi faccio uso di semplici file di testo per la lettura/scrittura.

Così ho iniziato a scrivere un programma in PHP che legge alcuni dati del visitatore (da un form di input in html), poi esegue alcuni semplici calcoli e infine scrive i risultati in un file di output (ovviamente residente sul server).

Quello che mi piacerebbe capire è cosa succede quando 100 visitatori del mio futuro sito (lo so, sono ottimista :)) accedono allo stesso tempo al mio programmino PHP. Mi spiego meglio: si creano dei conflitti (ad esempio nell'apertura o nella scrittura contemporanea del suddetto file di output), ci sono rallentamenti del programma PHP? Se le risposte a queste domande è "sì" mi piacerebbe capire quali accorgimenti si devono adottare per evitare questi problemi.

Grazie per eventuali risposte.
 

Night Assassin

Utente Attivo
16 Mar 2013
200
0
0
Si usa mysql per salvare i dati, non file di testo. Mysql non é difficilissimo.

Inviato con Tapatalk Free da Android
 

Indirizzo

Nuovo Utente
20 Ago 2014
18
0
0
Grazie per la risposta Night Assassin, ma molto probabilmente ho esposto male la mia domanda che non era tanto centrata sull'uso di file o di MySQL (per il quale ho visto che qui c'è un ottimo corso).

La mia domanda intendeva chiedere se vi sono dei cali di prestazioni (ossia dei rallentamenti di accesso al sito) legati all'accesso da parte di tanti visitatori e, in caso affermativo, quali contromisure adottare. In altre parole intendevo chiedere quanto segue:

- Esiste un numero massimo di connessioni ad un file o al database mysql ? Ad esempio, se in più pagine del mio sito faccio la connessione al database con le rispettive query, si può mantenere costantemente aperta la connessione al databse per evitare tempi per la connessione al database se il sito è visitato da decine di utenti?

- Esistono dei limiti del DB, che ne so, query all'ora, la dimensione massima che è quella dei normali file...

- Come dicevo nella mia domanda iniziale, se cento utenti accedono contemporaneamente al database, ci sarà un tempo di connessione al database per ogni utente prima di effettuare le query? Supponiamo che per una connessione al database ci vuole 1 secondo, il centesimo utente, in ordine cronologico, che accede dovrà aspettare 100 secondi? Oppure ogni utente aspetterà solo un secondo?

- infine: database a parte, il mio povero programmino in PHP, se viene eseguito contemporaneamente da 100 visitatori, come si comporta?

Grazie ancora a chi vorrà rispondermi.
 

flameseeker

Utente Attivo
27 Nov 2013
699
0
0
La mia domanda intendeva chiedere se vi sono dei cali di prestazioni (ossia dei rallentamenti di accesso al sito) legati all'accesso da parte di tanti visitatori

Tanti visitatori è relativo sempre alla tua applicazione, possono essere un migliaio come diecimila utenti.
In generale si, l'aumento di accessi al sito porta a richiedere risorse sempre maggiori al server e quando questi è in procinto di saturarle inizi a riscontrare dei rallentamenti in generale.

- Esiste un numero massimo di connessioni ad un file o al database mysql ?
Per il file no, ma sarai costretto ad applicare un lock su di esso per evitare che richieste simultanee possano corromperlo.
Introdurre un lock sicuramente anche con un numero non eccessivo di visualizzatori ti porta al punto in cui qualcun altro non potrà leggere la risorsa perché già in uso.

Ad esempio, se in più pagine del mio sito faccio la connessione al database con le rispettive query, si può mantenere costantemente aperta la connessione al databse per evitare tempi per la connessione al database se il sito è visitato da decine di utenti?
Si può mantenere una connessione perennemente aperta al database mysql, ma è una pratica che sconsiglio.
In un contesto normale rischia di fare più danni che altro: MySql di default permette fino a 100 connessioni simultanee (a seconda del tuo hosting provider questo limite può essere più o meno elevato).

- Come dicevo nella mia domanda iniziale, se cento utenti accedono contemporaneamente al database, ci sarà un tempo di connessione al database per ogni utente prima di effettuare le query? Supponiamo che per una connessione al database ci vuole 1 secondo, il centesimo utente, in ordine cronologico, che accede dovrà aspettare 100 secondi? Oppure ogni utente aspetterà solo un secondo?
No, ogni accesso è indipendente dall'altro, l'unico caso in cui un utente dovrà aspettare è quando le risorse del server vengono saturate.
Inoltre 1 secondo di connessione è un tempo enorme, la rapidità media della connessione e dell'esecuzione di una query si attesta nell'ordine dei millisecondi. Con questi presupposti puoi capire quanto sia difficile produrre anche solo 100 connessioni simultanee al database, perché quando un utente accede è quasi certo che altri abbiano già concluso.
Questo giochetto ti permette di non avere problemi anche con 3-4000 visitatori online sul sito se le tue pagine non sono particolarmente lente in esecuzione.

- Esistono dei limiti del DB, che ne so, query all'ora, la dimensione massima che è quella dei normali file...
Sono limitazioni che in genere include il provider: alcuni limitano lo spazio che puoi utilizzare mentre altri ti limitano il numero di operazioni che puoi fare a livello di query.
Ti tocca informarti bene presso dove hai acquistato lo spazio per l'hosting (o dove intendi farlo).

- infine: database a parte, il mio povero programmino in PHP, se viene eseguito contemporaneamente da 100 visitatori, come si comporta?
Si comporta normalmente con tutti, semplicemente occuperà un po di spazio nella RAM del server fino a quando l'esecuzione non termina, se il tuo script consuma parecchie risorse in questi termini raggiungerà più facilmente il punto di saturazione delle stesse.

Comunque, se inizi ad avere un traffico consistente, di anche un migliaio di visitatori nell'arco di un ora oltre alle misure di ottimizzazione dovresti prendere in considerazione l'uso di sistemi di caching server side.
 
Ultima modifica:

Indirizzo

Nuovo Utente
20 Ago 2014
18
0
0
Flameseeker, ti ringrazio moltissimo per la puntuale ed esauriente spiegazione.
Ora, tutto mi è molto più chiaro e posso procedere nello studio (e sperimentazione) di PHP.
Ho anche iniziato a studiarmi e MySQL, perchè ho compreso l'intimo legame tra i due.
Alla prossima!
 
Discussioni simili
Autore Titolo Forum Risposte Data
L Gestione accessi multipli a file importanti PHP 0
A Creazione cookie e gestione accessi PHP 0
M Web server domestico per sito con 50 accessi contemporanei, potenza necessaria? Hardware 0
P [PHP] Realizzare un controllo accessi cantiere, problema lettore Qrcode... PHP 0
L Sicurezza login e limitazione accessi PHP 3
Marco_88 Contatore di accessi PHP 5
F Accessi SFTP Hosting 3
Jam1 proteggere foto con watermark da accessi tramite $_GET[''] PHP 16
E Accessi ftp Supporto Mr.Webmaster 1
danlupo Problema Contatore Accessi PHP 3
F eliminare i propri accessi dalle statistiche di Google Analytic SEO e Posizionamento 5
E Differenza tra utenti e hits [Era: Statistiche accessi al sito] Discussioni Varie 2
sbobby Visite a accessi!! HTML e CSS 31
N Problemi con registrazione numero accessi. PHP 0
T Limitare accessi giornalieri di un utente [era: Piccolo problema] Classic ASP 1
M non contare gli accessi dal tuo pc Supporto Mr.Webmaster 1
B Contatore di accessi PHP 2
E 30.000 Accessi Al Tuo Sito! Incredibile Ma Vero!!! Presenta il tuo Sito 0
M 15000 accessi al sito :-S SEO e Posizionamento 1
peppoweb SpiderTrax, un freeware per monitorare gli accessi dei robots SEO e Posizionamento 0
grottafelix Contatore accessi:invisibile Javascript 4
grottafelix Contatore accessi in Perl Programmazione 1
L inserimento form dati multipli ? PHP 0
R Invio mail con allegati multipli PHP 0
R Download file multipli da directory php PHP 0
Sergio Unia Ricezione email con destinatari multipli [Risolto] PHP 2
I [PHP] Invio sms multipli PHP 4
M [HTML] form con multipli input type image HTML e CSS 1
W Configurazione SSID Multipli via GUI su AP Cisco Aironet 1130 AG Reti LAN e Wireless 0
E [PHP] $_FILES per file multipli su Aruba PHP 6
T [PHP] Checkbox E Valori Multipli In Una Colonna PHP 1
M Inserimento dati checkbox multipli in db da ajax a php PHP 1
A [PHP] Invio MP a destinatari multipli PHP 6
M [PHP] Checkbox e valori multipli in una colonna PHP 10
M [MS Access] Estrazione record multipli MS Access 1
T Problema iis6 protocolli multipli Web Server 0
L Select condizionati multipli Javascript 0
maxs84 Filtri multipli da casella combinata MS Access 0
L Importare post multipli in wp WordPress 5
JackIlPazzo Come creare un oggetto con attributi multipli? PHP 1
C Query con campo a valori multipli MS Access 0
Shyson Css multipli HTML e CSS 2
X Funzione onscroll relativa a elementi multipli Javascript 0
filomeni Multipli tag H1 nella pagina SEO e Posizionamento 1
B Estrazione Database valori multipli MySQL 4
F Form Multipli con PHP e SQL PHP 0
N Estrazione Record multipli da MySQL in OO PHP 0
N problema inserimento record multipli col tasto f5 PHP 6
S Form invio file multipli PHP 36
E Problema con array multipli Javascript 1

Discussioni simili