|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : juillet 2011 Messages : 7 ![]() |
Bonjour,
Je suis en train de développer un outil pour Airbus qui teste la mixabilité des systèmes entre eux. En gros, pour chaque système, j'ai un fichier qui répertorie tous les signaux en entrée et sortie. Ces fichiers sont au format CSV. Je bosse sur un ordi tout pourri (proc < 1GHz, 960Mo de RAM, DD 60Go) avec mon petit serveur apache. Important de préciser ça car l'appli devra être capable de tourner sur une charrette de ce genre. Quel est mon problème ? En gros, on me passe des conf de taille variable. Je n'ai pas de problèmes pour les petites conf, c'est très rapide. Mais, parfois, il faudra faire tourner des conf avion entières où j'aurai 200 systèmes et plus d'un million de signaux échangés. Ce que je faisais avant : je stockais tout dans mes petits tableaux PHP classiques et après j'analysais tous les input. OK pour une conf légère. Mais pour certains systèmes, pour une section, je peux me retrouver avec plus de 80Mo de texte CSV et là, rien ne va plus. Je me suis dit, on va mettre ça en cache avec Zend_Cache. Je teste avec le backend File. Le truc est que ça me créé deux fichiers par signal donc je peux avoir 2 millions de fichiers créés au final. Et surtout, étant données que certaines sections sont trop grosses, je peux pas balancer tout le contenu de la section, je suis obligé de cacher ligne par ligne. J'ai essayé avec le backend SQLite mais là aussi, je suis obligé d'ajouter signal par signal, ce qui prend un temps monstre, encore plus important qu'avec le backend File. Au final, je suis face à une impasse. Les petites conf tournent très bien et dans un temps record comparé aux anciens outils mais pour les grosses conf, rien ne va plus. Je pourrais peut être coupler une mise en RAM à une écriture fichier. Si quelqu'un a une solution honnête, je suis tout ouïe. Bien cordialement, Louis |
|
|
00
|
|
|
#2 |
|
Membre confirmé
![]() ![]() Lucas CORBEAUXChef de projet MOE Inscription : février 2003 Messages : 158 ![]() |
Bonjour,
Je ne suis pas sûr de bien saisir tous les tenants et aboutissants du problème à la seule lecture de la demande, aussi je peux répondre tout à fait à côté, mais tu peux jeter un oeil aux backends disponibles pour Zend_Cache ici : http://framework.zend.com/manual/en/....backends.html Utiliser un cache rapide (Apc, Memcached), ou même TwoLevels pour pouvoir jouer selon le besoin entre rapidité d'accès ou volume à mettre en cache, pourrait aider. Je te renvoie aussi sur l'option "automatic_serialization" du frontend : http://framework.zend.com/manual/en/...frontends.html En la positionnant à true, tu peux mettre en cache des structures complexes qui permettront de réduire le nombre de fichiers de cache. En espérant que ça aide un peu. |
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : juillet 2011 Messages : 7 ![]() |
C'est bon, j'ai fini par trouver un moyen assez potable.
En gros, je teste la taille des fichiers qu'on me passe. Si elle dépasse pas une certaine limite, je mets tout en APC, sinon je mets la plus grosse section en File et les 4 autres mineures en APC. |
|
|
00
|
|
|
#4 |
|
Membre éclairé
![]() |
Si je ne m'abuse apc stock dans ta ram aussi ? Pourquoi ne pas simplement augmenter le memory_limit. ?
|
|
00
|
Copyright © 2000-2012 - www.developpez.com