Page 1 sur 1

Informations partagés

Posté : 03 sept. 2008, 15:56
par katagoto
Bonjour à toutes et tous,

Actuellement, je conçoit un site "lourd" et pour mieu gérer la charge, je ne vérifie que certaines informations (nombre de MP, par exemple) que quelques fois, en fonction de la charge...
Seulement, il est nécessaire d'utilise la commande exec ("uptime"), seulement cette action est couteuse...
J'aimerais savoir s'il est possible de faire une sorte de "mémoire partagé" (dans la mémoire vive), un script récupèrerais, par exemple toutes les minutes, le temps et le mettrais en mémoire, que je pourrais récupérer sans problème...

Par avance merci de votre aide...

Posté : 03 sept. 2008, 16:13
par doctorrock
Mémoire partagée ? ==> Memcached

Posté : 03 sept. 2008, 17:01
par Berzemus
Ou, si tout se déroule dans php et sur un serveur, apc.

Posté : 03 sept. 2008, 17:09
par katagoto
Mémoire partagée ? ==> Memcached
Parfait, que demandé de plus ^^

Posté : 03 sept. 2008, 17:41
par doctorrock
Je l'utilise en backend avec Zend Framework, et en backend de sessions aussi ^^

Posté : 03 sept. 2008, 18:15
par katagoto
Ah et c'est comment par rapport à memcache ?

Posté : 04 sept. 2008, 00:29
par Berzemus
Il me semble me souvenir que apc est plus rapide que memcache, pour la simple raison qu'il est intégré a php..

aha:
http://www.phpbuilder.com/board/archive ... 46692.html

On dirait que apc est plus rapide que memcache quand il y a plus de lecture que d'écriture. Ce qui est, en quelque sorte, le quotidien du web.. (Plein de lectures pour pas grand chose d'écritures)

Posté : 04 sept. 2008, 16:49
par katagoto
:o

Oui, en effet, impressionnant :
1:1 read:write
APC 0.55 sec
Memcache 0.08 sec

20:1 read:write
APC 0.75 sec
Memcache 0.79 sec

100:1 read:write
APC 1.53 sec
Memcache 3.54 sec
Je savias que APC était performant, mais ça m'impressione quand même...

Posté : 04 sept. 2008, 17:01
par doctorrock
APC n'est pas un serveur de mémoire partagée, dans la mesure où il est couplé fortement à Apache.
Si vous tuez Apache (ou qu'il plante), APC meurt, et tout ce qu'il contient aussi.

Aussi, il n'est pas possible de stocker dans APC des données provenant d'autre chose que de PHP.

Memcached est un serveur de mémoire partagée, il possède une IP, un port, et vit de manière indépendante d'Apache ( c'est d'ailleurs une bonne solution de session clustering ).
Il peut donc être interrogé par n'importe qui, de n'importe où, dont PHP, car il propose une API implémentée dans beaucoup de langages (C, C++, Perl .... PHP ...)

C'est entre autre pour cela qu'APC montre des performances meilleures que Memcached ^^

Posté : 04 sept. 2008, 23:21
par Berzemus
:o

Je savias que APC était performant, mais ça m'impressione quand même...
Comme le dit doctorrock, tu as des avantages et inconvénients des deux côtés. A toi de voir ce qui te convient :wink:

Posté : 05 sept. 2008, 07:32
par katagoto
A prioris, toute notre application, ou presque, c'est à dire quelques extensions faites en C/C++, sera basé sur PHP/PostGreSQL, donc étant donné les performances d'environ 50% APC s'impose, surtout que le recalcul est "fréquent donc, si apache plante je serait de toutes façon obligé de recalculer le temps :roll: