<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Pianeta M</title>
	<atom:link href="http://pianetaemme.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://pianetaemme.wordpress.com</link>
	<description>Il blog di un consulente.....come tanti</description>
	<lastBuildDate>Thu, 29 Oct 2009 14:25:37 +0000</lastBuildDate>
	<language>it</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='pianetaemme.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Pianeta M</title>
		<link>http://pianetaemme.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://pianetaemme.wordpress.com/osd.xml" title="Pianeta M" />
	<atom:link rel='hub' href='http://pianetaemme.wordpress.com/?pushpress=hub'/>
		<item>
		<title>IIS 7, FastCGI e PHP &#8211; Prestazioni</title>
		<link>http://pianetaemme.wordpress.com/2009/10/29/iis-7-fastcgi-e-php-prestazioni/</link>
		<comments>http://pianetaemme.wordpress.com/2009/10/29/iis-7-fastcgi-e-php-prestazioni/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 14:21:47 +0000</pubDate>
		<dc:creator>adeangelis84</dc:creator>
				<category><![CDATA[IIS7]]></category>
		<category><![CDATA[cgi]]></category>
		<category><![CDATA[fastcgi]]></category>
		<category><![CDATA[mwindows]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://pianetaemme.wordpress.com/?p=7</guid>
		<description><![CDATA[Oggi ho deciso di parlare un pò dell&#8217;integrazione di PHP su Windows, e più precisamente su Windows 2008 Server e IIS7. Molti vedono come un oltraggio questa integrazione, ma tant&#8217;è ne esiste la possibilità, vuoi perché magari i clienti finali che non vogliono sentir parlare (a torto) di sistemi Linux, oppure vuoi perchè da parte [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pianetaemme.wordpress.com&amp;blog=10079615&amp;post=7&amp;subd=pianetaemme&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Oggi ho deciso di parlare un pò dell&#8217;integrazione di PHP su Windows, e più precisamente su Windows 2008 Server e IIS7. Molti vedono come un oltraggio questa integrazione, ma tant&#8217;è ne esiste la possibilità, vuoi perché magari i clienti finali che non vogliono sentir parlare (a torto) di sistemi Linux, oppure vuoi perchè da parte di Microsoft c&#8217;è stata un&#8217;apertura verso l&#8217;open-source, come ad esempio l&#8217;accordo con la società israeliana ZEND, da anni sostenitrice del progetto PHP, dobbiamo trovare assolutamente una soluzione per utilizzare al meglio il nostro server web..</p>
<p>Nell&#8217;articolo di oggi, non parlerò del funzionamento di PHP o di IIS7, bensì di un tema solo in parte trattato, tra i più importanti, ovvero il concetto delle <strong>prestazioni</strong>.</p>
<p>Per chi presta la propria attività presso un cliente, diciamo medio grande, e si occupa di un qualsiasi progetto web nel quale si faccia uso di PHP su sistemi Windows, si imbatterà prima o poi nella fase di test e collaudo prestazionale, e di certo non si potrà nascondere nel momento che l&#8217;omino dei test urlerà ai quattro venti che i nostri server non superano le 300 request al secondo.</p>
<p>Ed allora andiamo ad analizzare nel dettaglio tutte le piccole migliorie che possiamo apportare ai nostri server.</p>
<p>Il nostro ambiente di riferimento sarà:</p>
<p>Windows server 2008<br />
IIS7<br />
FastCgi<br />
PHP 5.3 thread-safe (complichiamo la faccenda)<br />
Lib PECL</p>
<p>Personalmente, se non siete masochisti come me, vi consiglio l&#8217;uso del pacchetto PHP Zend-Core di Zend appunto, che porta al suo interno moltissime personalizzazioni di PHP per convivere con windows.</p>
<p>Inoltre è consigliato l&#8217;utilizzo di PHP in modalità NON-thread Safe, ma se avete applicazione che richiedono il thread-safe allora continuate a leggere.</p>
<p>Dunque prendiamo atto che già disponete di IIS7 installato e del modulo FastCGI attivato(In windows 2008 il modulo FastCGI è integrato in IIS7, quindi non occorre scaricarlo come pacchetto aggiuntivo).</p>
<p> Installate la vostra versione di PHP. Di default dovrebbe installarsi all&#8217;interno della root C (C:\PHP).</p>
<p>Per non prolungarmi troppo, do per scontato che siete in grado di creare un sito e di creare un’ application pool che punta al nostro PHP utilizzando FastCGI</p>
<p>Come prima cosa andiamo ad editare alcuni parametri di configurazione del modulo FastCGI di IIS7.</p>
<p>Nella consolle di gestione di IIS (IIS 7 Manager), selezioniamo <strong>FastCGI Settings:</strong></p>
<p style="text-align:center;"><strong> <img class="aligncenter size-full wp-image-8" title="2" src="http://pianetaemme.files.wordpress.com/2009/10/2.png?w=460" alt="FastCgi Settings"   /></strong></p>
<p>Facciamo doppio click sull’appication FastCGI  per visualizzare e modificare i valori impostati di default.</p>
<p style="text-align:center;"> </p>
<div id="attachment_9" class="wp-caption aligncenter" style="width: 470px"><img class="size-full wp-image-9" title="3" src="http://pianetaemme.files.wordpress.com/2009/10/3.png?w=460&#038;h=308" alt="Enviroment Variable FastCgi" width="460" height="308" /><p class="wp-caption-text">Enviroment Variable FastCgi</p></div>
<p>Qui dobbiamo fare attenzione a due campi:</p>
<ol>
<li><strong>MaxInstance=4;              </strong>Questo campo di default è impostato a 4, ed indica il numero di processi php-cgi.exe contemporanei possono essere gestiti dal nostro server. Questo valore può essere portato fino a 32, a seconda della potenza computazionale della nostra macchina.<strong> <br />
</strong>Nel caso avessimo un quad-core esso distribuirà autonomamente le istanze su tutti e 4 i core. Più Istanze possono essere eseguite e più veloci saranno le risposte del server alle nostre chiamate. </li>
<li><strong>InstanceMaxRequest= 200        </strong>Di default il valore di questo campo è impostato a 200, ed anche questo è variabile a seconda della potenza del server. Da Best Practices Microsoft è consigliato alzare questo valore senza però compromettere l’affidabilità dell’applicazione, viene consigliato comunque di impostarlo a circa 10000 istanze, in ogni caso questo valore deve essere minore o uguale al valore della variabile <strong>PHP_FCGI_MAX_REQUESTS.<br />
</strong>Questa variabile, che non è presente in elenco è di default impostata con il valore 500, sarà nostra cura editarla ed impostare anch’essa al valore 10000. Vediamo come:<br />
clicchiamo su <strong>Enviroment Variables </strong>e cliccando sul pulsante <strong>Add </strong>aggiungiamo la variabile con il nome <strong>PHP_FCGI_MAX_REQUESTS </strong>e come valore digitiamo <strong>10000.</strong></li>
</ol>
<p style="text-align:center;"><strong> </strong><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong>Chiudiamo la parte relativa alla configurazione del modulo FastCGI e passiamo alla configurazione della cache di IIS7</p>
<p>Ebbene, IIS7 a differenza dei suoi predecessori presenta un nuovo tipo di cache chiamata UserMode oltre alla sempre presente Kernel Mode. Entrambe fanno riferimento ad un modulo chiamato Output Caching.</p>
<p>Grazie a questa introduzione, potremo utilizzare la cache di IIS anche per le applicazioni scritte in PHP, ovviamente per ASP.NET ci sono tutta una seria di Pipeline che sfrutta a pieno questa funzionalità.</p>
<p>Considerate che in presenza di contenuti statici, ad esempio immagini, si arriva a moltiplicare 10 volte il numero delle request/sec elaborate dal nostro server.</p>
<p>Di seguito vi elenco i parametri consigliati per la cache del nostro ambiente PHP: </p>
<p>Sempre all’interno di IIS, selezioniamo il nostro Sito, e facciamo doppio click sul modulo <strong>Output Caching</strong>.</p>
<p>Sulla destra in alto facciamo click su <strong>Add </strong>ed aggiungiamo la nostra regola per la cache.</p>
<p> In figura i dati da inserire in  configurazione:</p>
<p style="text-align:center;"> </p>
<div id="attachment_11" class="wp-caption aligncenter" style="width: 470px"><img class="size-full wp-image-11" title="5" src="http://pianetaemme.files.wordpress.com/2009/10/5.png?w=460&#038;h=407" alt="Output caching iis7" width="460" height="407" /><p class="wp-caption-text">Output caching iis7</p></div>
<p> Facciamo click su <strong>Advanced </strong>e spuntando la checkbox <strong>Query String Variables </strong>inseriamo semplicemente un “*” per accettare ogni cosa,oppure possiamo inserire i valori a nostro piacimento.</p>
<p> Salviamo il tutto, e passiamo al fine tuning del php.ini del nostro server.</p>
<p> Per quanto riguarda il php.ini, ovviamente vanno effettuate tutte le configurazione delle quali avrà bisogno la nostra o le nostre applicazioni, ci sono comunque una serie di parametri (alcuni comuni anche alla versione Zend) che sarebbe opportuno rispettare per un miglioramento delle performance. Ovviamente non tutte sono applicabili in tutti i casi, anche in queste configurazioni occorre tenere conto della configurazione hardware del nostro server.</p>
<p> Per praticità riporto una tabella che potete trovare al seguente link:</p>
<p> <a href="http://files.zend.com/help/Zend-Server-Community-Edition/configuring_php_for_performance.htm">http://files.zend.com/help/Zend-Server-Community-Edition/configuring_php_for_performance.htm</a></p>
<p> Per effettuare un test prestazionale potete utilizzare il tool Microsoft Wcat integrato anche nel resourcekit iis 6.</p>
<p>Un esempio pratico di test: <a href="http://blogs.iis.net/bills/archive/2006/10/31/PHP-on-IIS.aspx">http://blogs.iis.net/bills/archive/2006/10/31/PHP-on-IIS.aspx</a></p>
<p>Ebbene con queste poche e pratiche modifiche, il sito da me utilizzato per i test, è passato da 1300 Request/Sec  a  3800 Request/Sec.</p>
<p>Sono ovviamente graditi commenti o rettifiche al testo</p>
<p>Alla prossima</p>
<p>Alessandro</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pianetaemme.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pianetaemme.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pianetaemme.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pianetaemme.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/pianetaemme.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/pianetaemme.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/pianetaemme.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/pianetaemme.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pianetaemme.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pianetaemme.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pianetaemme.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pianetaemme.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pianetaemme.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pianetaemme.wordpress.com/7/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pianetaemme.wordpress.com&amp;blog=10079615&amp;post=7&amp;subd=pianetaemme&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://pianetaemme.wordpress.com/2009/10/29/iis-7-fastcgi-e-php-prestazioni/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/949912a5ea294558790728848ffd78a6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">adeangelis84</media:title>
		</media:content>

		<media:content url="http://pianetaemme.files.wordpress.com/2009/10/2.png" medium="image">
			<media:title type="html">2</media:title>
		</media:content>

		<media:content url="http://pianetaemme.files.wordpress.com/2009/10/3.png" medium="image">
			<media:title type="html">3</media:title>
		</media:content>

		<media:content url="http://pianetaemme.files.wordpress.com/2009/10/5.png" medium="image">
			<media:title type="html">5</media:title>
		</media:content>
	</item>
		<item>
		<title>Perchè anche io</title>
		<link>http://pianetaemme.wordpress.com/2009/10/23/perche-anche-io/</link>
		<comments>http://pianetaemme.wordpress.com/2009/10/23/perche-anche-io/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 16:04:53 +0000</pubDate>
		<dc:creator>adeangelis84</dc:creator>
				<category><![CDATA[Senza Categoria]]></category>

		<guid isPermaLink="false">http://pianetaemme.wordpress.com/?p=4</guid>
		<description><![CDATA[Ciao a tutti, questo è il mio primo post del mio primo blog. Ho deciso anch&#8217;io di seguire la moda? Ma, più che altro, ho deciso di scrivere un diario sul quale annotare le mie esperienze lavorative, solo lavorative, quelle personali le ricordo a memoria! Diciamo subito, che di essere un bravo blogger me ne [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pianetaemme.wordpress.com&amp;blog=10079615&amp;post=4&amp;subd=pianetaemme&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Ciao a tutti, questo è il mio primo post del mio primo blog.</p>
<p>Ho deciso anch&#8217;io di seguire la moda? Ma, più che altro, ho deciso di scrivere un diario sul quale annotare le mie esperienze lavorative, solo lavorative, quelle personali le ricordo a memoria!<br />
Diciamo subito, che di essere un bravo blogger me ne frega sinceramente poco, per cui sarò felice per colui che troverà i miei post piacevoli/utili, per il resto alzo le spalle.<br />
Detto questo andiamo alle presentazioni: mi chiamo Alessandro, sono un consulente informatico e lavoro presso una grande azienda che a sua volta lavora per altre grandi aziende, la solita storia italiana e non.<br />
Mi interessa tutto ciò che accade intorno a me, mi piace parlare un pò di tutto d&#8217;altrone se non fosse così sarebbe difficile lavorare in un gruppo dove ognuno spara la sua opinione giornaliera sugli argomenti più disparati. Bene, diciamo che mi sono già prolungato oltre, per cui ci si legge al mio prossimo ed ufficiale &#8220;primo post&#8221;.</p>
<p>Alla prossima, Alessandro</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pianetaemme.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pianetaemme.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pianetaemme.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pianetaemme.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/pianetaemme.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/pianetaemme.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/pianetaemme.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/pianetaemme.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pianetaemme.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pianetaemme.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pianetaemme.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pianetaemme.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pianetaemme.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pianetaemme.wordpress.com/4/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pianetaemme.wordpress.com&amp;blog=10079615&amp;post=4&amp;subd=pianetaemme&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://pianetaemme.wordpress.com/2009/10/23/perche-anche-io/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/949912a5ea294558790728848ffd78a6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">adeangelis84</media:title>
		</media:content>
	</item>
	</channel>
</rss>
