Ett sätt att öka prestandan när det gäller kommunikation internt inom ditt eget system är att använda Unix domain sockets. Istället för att använda TCP för att kommunicera internt mellan processer på ditt system så bör du med fördel använda Unix-sockets då detta påverkar prestandan positivt.
Några exempel på där du kan använda Unix-sockets är i Redis samt om du använder Nginx och PHP-FPM. För att använda Unix-sockets i Redis behöver du enbart lägga till följande rad i redis.conf:
unixsocket /tmp/redis.sock
Och för att använda denna socket när du ansluter kan variera lite beroende på vilken klient du använder, men på följande sätt gör jag:
$redis->connect(’/tmp/redis.sock’);
Glöm inte att rättigheterna på /tmp/redis.sock måste vara så att både Redis samt klienten kan läsa. Nu över till hur man konfigurerar Nginx och PHP-FPM att använda sockets.
Första steget är att konfigurera FPM att lyssna på en socket, och detta görs i konfigurationsfilen. Min återfinnes här:
/etc/php5/fpm/pool.d/www.conf
Och i denna fil ändrar jag där raden listen återfinnes så det ser ut något i stil med:
listen = /var/run/php5-fpm.sock
Och nästa steg är att ändra så att Nginx vet att vi har en Unix-socket för PHP-exekvering och det kan göras genom att lägga till eller ändra din ”upstream” om du använder en sådan:
upstream php { server unix:/var/run/php5-fpm.sock; }
Och sedan använda fastcgi_pass php på följande sätt till varje server:
location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; #NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini include /etc/nginx/fastcgi_params; fastcgi_intercept_errors on; fastcgi_pass php; }
Vill du fördjupa dig ännu mer gällande Unix sockets kan du läsa här. MySQL och PHP skall enligt manualsidan automatiskt välja Unix sockets om det finns tillgängligt vilket det bör göra standardmässigt.