J'ai eu le même message d'erreur pour GTK, qui était dû à une ancienne version installée par Gaim.
Après désinstallation de celle-ci, Ekiga m'a installé les nouvelles et ça marche sans problème.
Je suis relativement proche des valeurs que tu recommandes.
D'ailleurs en suivant les conseils du script que j'ai posté plus haut j'ai baissé le key_buffer de 16M à 4 Mo et le calcul de Key_reads/Key_read_request me donne un ratio de 0.0151 ce qui n'est pas très loin de ce que tu préconise.
Mon lowmem_prunes est à 0 pour un total de 723190 requêtes sur une journée de production.
Seul mes valeures de temp me semblent élevées:
mysql> show status like '%tmp%';
+-------------------------+-------+
| Variable_name | Value |
+-------------------------+-------+
| Created_tmp_disk_tables | 19383 |
| Created_tmp_files | 381 |
| Created_tmp_tables | 46155 |
+-------------------------+-------+
Created_tmp_disk_tables/Created_tmp_tables me donne un ratio de 42%. Pourtant j'ai passé le tmp_table_size à 256 Mo. Et je n'ai que 2 requêtes qui sont vraiment lourdes, les autres étant je pense, relativement bien optimisées. D'ailleurs sur mes 723190 requêtes je n'en ai que 79 qui ont dépassé un temps d'éxécution de 5 secondes.
Je commence à me demander si ce n'est pas mon processeur qui est complètement à l'ouest .
En tout cas encore merci pour tes éclaircissements.
Il se trouve que CRM oblige, j'ai des requêtes de tous types et de toutes tailles.
Pour préciser un peu:
- 2/3 de mes requêtes sont des SELECT (dont 1/4 de grosses requêtes (3-4 sec d'exécution quand le serveur est full) et 3/4 des requêtes sont petites (éxécution quasi simultanée))
- 1/3 d' INSERT/UPDATE qui ne posent pas de soucis d'éxécution.
- 90% des requêtes proviennent de ce CRM qui travaille avec 14 tables en innoDB.
- Les 10% proviennent des scripts PERL qui utilisent des tables Myisam avec des petites requêtes.
Alors je demendais pas qu'on me ponde mon my.cnf aux petits oignons, juste si il n'y as pas des trucs aberrants par rapport à ma config... Voilà peut être pourras tu m'orienter un peu plus...
J'ai finalement trouvé ce dont j'avais besoin: PDFTK.
Il offre la possibilité de remplir un PDF contenant un formulaire avec un fichier FDF et ensuite de les fusionner pour créer un NOUVEAU PDF avec l'option fill_form, ce qui était le but de ma recherche.
Si je ne dis pas de bêtises, FPDF permet de créer un PDF de toutes pièces et non de modifier/remplir un document existant ....
Or moi j'ai en fait un modèle que je dois personaliser pour chaque personnes. Ce PDF est tellement chergé qu'il est irreproductible par un script je pense.
Merci...
J'avoue que c'était plus de la fénéantise de décortiquer le role de chaque fonction que de l'incompétence :-) J'ai attaqué le PERL il n'y pas si longtemps et mon style n'est pas encore très condensé.
En utilisant un format de date dans MySQL tu pourras en plus utiliser des fonctions existantes pourr travailler directement sur les jours, mois, années, additions, soustractions de dates, etc... ce qui permet souvent d'économiser du code derrière. Cf. DATE(), DAY(), MONTH(), YEAR(), DATEDIFF().
Et puis de toute façon c'est une bonne habitude à prendre :)
Ouep, j'avoue c'était vraiment très con de ma part...
En fait c'était juste un dev tout simple au début qui as pris beaucoup d'importance au fur à mesure.
Pour info j'y ai bossé pendant 1 mois dans le repertoire /tmp. Donc c'est les fichiers qui n'ont pas été accédé depuis un certain temps qui doivent être supprimés...
Bon je m'en suis sortit, Notamment en appliquant ce que vous m'avez dit.
Mon principal probème vient du faite que la console Javascript n'affiche pas les erreurs dans mon fichier .js et celà probablement parce que je l'utilise avec un bandeau en XUL.
En gros à force de triturer mon code dans tous les sens il devait me manquer une accolade quelque part. Après avoir tout repris ça fonctionne.
A noter que bizarrement ça ne fonctionne qu'en asynchrone mais ça ne me gêne pas.
function checkNewFiche() {
var numTA = document.getElementById("numTA");
var request = new XMLHttpRequest();
request.open("GET", "http://192.168.2.205/asterisk.php?ordre=checkfiche&agent(...)"+numTA.value, true);
request.onreadystatechange = function(){
// instructions de traitement de la réponse
if ((request.readyState == 4)){
alert(request.responseText);
}
}
request.send(null);
}
Pour les routes effectivement l'idées est bien de les retrouver à chaque démarrage. Le pointeur réponds parfaitement à ma question mais je n'ai pas su le faire remonter par Google...
Je vais checker les pistes que tu m'a données pour la deuxième question.
En tout cas un grand merci pour cette réponse si complète.
Bon j'ai continué mes investigations et là je suis complètement paumé :(
en fait j'ai deux liens qui partent de mon site (Amiens) en direct vers mon opérateur VoIP (en IAX2 trunked, à Paris).
Ce sont deux abonnements ADSL sur deux lignes classiques FT. Mon opérateur à un accord avec un FAI et est directement connecté à ses routeurs. J'ai mes abonements sur ces deux liens (1024/256) chez ce même FAI ce qui nous permet d'avoir en quelque sorte une liaison louée. Voilà pour l'interconnection.
Pour tester j'ai donc essayé d'inverser mes deux interfaces Ethernet sur mon serveur Asterisk, mes deux lignes téléphoniques au niveau des routeurs, changé de routeur, changé de route... A chaque fois le problème se retrouve au même niveau !!! Toujours sur le lien utilisant le linksys (ou la livebox que j'ai utilisé pour faire un test) et jamais sur ma route utilisant mon routeur speedtouch.
Si quelqu'un avait ne serait-ce qu'une suggestion à me faire pour identifier mon problème... Je commence à me demander si ce n'est pas la commnde mtr qui merde. Avec un Ping -A je ne rencontre pas le problème. Et pourtant la qualité de la voie est indéniablement moin bonne sur mon lien qui pose problème.
Bon j'étais sur la bonne voie alors pour le SMP...
L'utilisation du Dual-Core est donc totalement transparente pour le Kernel ?
J'hésite à passer à FC5 car il semble qu'il y est quelques soucis avec Zaptel qui est nécessaire à certaines fonctions d'Asterisk.
Debian ? Oui, dès que j'aurais le temps de la tester en dehors du boulot. Pour l'instant j'avoue mon faible pour rpm et yum (je connais urpmi bien sur et apt).
# Exprimez vous
Posté par Flavien . En réponse au journal "Honte l'assemblée nationale". Évalué à 0.
contact@le-nouveaucentre.org
Je vous engage à faire la même chose.
[^] # Re: installation sous windows
Posté par Flavien . En réponse à la dépêche Ekiga 2.0.9 pour Linux et Windows. Évalué à 1.
J'ai eu le même message d'erreur pour GTK, qui était dû à une ancienne version installée par Gaim.
Après désinstallation de celle-ci, Ekiga m'a installé les nouvelles et ça marche sans problème.
[^] # Bingo
Posté par Flavien . En réponse au message Stocker un descripteur de Socket dans un Hash Partagé. Évalué à 1.
[^] # Re: pas simple
Posté par Flavien . En réponse au message Hash de Hash partagé entre Threads. Évalué à 2.
je devais donc faire ça:
my %realtime : shared;
$realtime{ $xxx } = &share( {} );
Merci de ton aide...
[^] # Re: piste
Posté par Flavien . En réponse au message Hash de Hash partagé entre Threads. Évalué à 1.
http://search.cpan.org/~jdhedden/threads-shared-1.05/shared.(...)
Ca doit être la solution.
Je vais tester...
[^] # Re: pas simple
Posté par Flavien . En réponse au message Hash de Hash partagé entre Threads. Évalué à 1.
Il me semble que je le déclare vide..
my %realtime :shared = ();
Le script plante dès que je touche à %realtime dans le thread:
$realtime{ $agent }{date} = localtime(time);
Si je place des données dans %realtime avant de créer mon thread ecoute, les données lui sont bien transférées...
[^] # Re: reflexion ...
Posté par Flavien . En réponse au message Optimisations Serveur. Évalué à 1.
Je suis relativement proche des valeurs que tu recommandes.
D'ailleurs en suivant les conseils du script que j'ai posté plus haut j'ai baissé le key_buffer de 16M à 4 Mo et le calcul de Key_reads/Key_read_request me donne un ratio de 0.0151 ce qui n'est pas très loin de ce que tu préconise.
Mon lowmem_prunes est à 0 pour un total de 723190 requêtes sur une journée de production.
Seul mes valeures de temp me semblent élevées:
mysql> show status like '%tmp%';
+-------------------------+-------+
| Variable_name | Value |
+-------------------------+-------+
| Created_tmp_disk_tables | 19383 |
| Created_tmp_files | 381 |
| Created_tmp_tables | 46155 |
+-------------------------+-------+
Created_tmp_disk_tables/Created_tmp_tables me donne un ratio de 42%. Pourtant j'ai passé le tmp_table_size à 256 Mo. Et je n'ai que 2 requêtes qui sont vraiment lourdes, les autres étant je pense, relativement bien optimisées. D'ailleurs sur mes 723190 requêtes je n'en ai que 79 qui ont dépassé un temps d'éxécution de 5 secondes.
Je commence à me demander si ce n'est pas mon processeur qui est complètement à l'ouest .
En tout cas encore merci pour tes éclaircissements.
[^] # Une aide
Posté par Flavien . En réponse au message Optimisations Serveur. Évalué à 1.
http://www.day32.com/MySQL/
[^] # Re: reflexion ...
Posté par Flavien . En réponse au message Optimisations Serveur. Évalué à 1.
Il se trouve que CRM oblige, j'ai des requêtes de tous types et de toutes tailles.
Pour préciser un peu:
- 2/3 de mes requêtes sont des SELECT (dont 1/4 de grosses requêtes (3-4 sec d'exécution quand le serveur est full) et 3/4 des requêtes sont petites (éxécution quasi simultanée))
- 1/3 d' INSERT/UPDATE qui ne posent pas de soucis d'éxécution.
- 90% des requêtes proviennent de ce CRM qui travaille avec 14 tables en innoDB.
- Les 10% proviennent des scripts PERL qui utilisent des tables Myisam avec des petites requêtes.
Alors je demendais pas qu'on me ponde mon my.cnf aux petits oignons, juste si il n'y as pas des trucs aberrants par rapport à ma config... Voilà peut être pourras tu m'orienter un peu plus...
Merci
[^] # En fait PDFTK
Posté par Flavien . En réponse au message Remplir un PDF. Évalué à 1.
J'ai finalement trouvé ce dont j'avais besoin: PDFTK.
Il offre la possibilité de remplir un PDF contenant un formulaire avec un fichier FDF et ensuite de les fusionner pour créer un NOUVEAU PDF avec l'option fill_form, ce qui était le but de ma recherche.
Voilà, merci pour vos suggestions.
Flavien
[^] # Re: fpdf
Posté par Flavien . En réponse au message Remplir un PDF. Évalué à 1.
Or moi j'ai en fait un modèle que je dois personaliser pour chaque personnes. Ce PDF est tellement chergé qu'il est irreproductible par un script je pense.
Merci en tout cas de ta réponse.
[^] # Re: beuh
Posté par Flavien . En réponse au message Tester un 'NULL'. Évalué à 1.
J'avoue que c'était plus de la fénéantise de décortiquer le role de chaque fonction que de l'incompétence :-) J'ai attaqué le PERL il n'y pas si longtemps et mon style n'est pas encore très condensé.
Je vais donc retenter d'utiliser defined().
[^] # Re: beuh
Posté par Flavien . En réponse au message Tester un 'NULL'. Évalué à 1.
c'est le deuxième colonne qui m'échape surtout.
En bref c'est defined() qui doit faire mon bohneur ?
[^] # Re: Juste une idée
Posté par Flavien . En réponse au message Tester un 'NULL'. Évalué à 1.
Mais bon en principe NULL est plus un état qu' une valeur.
En tout cas ça marche pas. Merci quand même...
[^] # Re: Une chaîne pour stocker une date...
Posté par Flavien . En réponse au message Mettre des dates en ordre?. Évalué à 2.
Et puis de toute façon c'est une bonne habitude à prendre :)
[^] # Re: C'est une feature, pas un bug
Posté par Flavien . En réponse au message Fermer proprement un socket. Évalué à 2.
J'avais déjà testé le "setsockopt" mais je n'avais pas réussi à le faire fonctionner. Et bien cette fois ci ça y est.
Merci bien...
Le shutdown ne résoud pas le problème. Voilà le code d'ouverture du socket qui va bien :)
[code]
socket(ACCES_SERVEUR,AF_INET,SOCK_STREAM,$protocole) || die("Ouverture de socket: $!");
$TSAP_serveur = pack('SnA4x8', AF_INET, $port, INADDR_ANY);
setsockopt(ACCES_SERVEUR, SOL_SOCKET, SO_REUSEADDR,1) || die "setsockopt() failed: $!\n";
bind(ACCES_SERVEUR,$TSAP_serveur) || die("Accrochage socket: $!");
listen(ACCES_SERVEUR, SOMAXCONN) || die("Ecoute socket: $!");
[/code]
[^] # Re: tmpwatch
Posté par Flavien . En réponse au message nettoyage auto de /tmp. Évalué à 1.
[^] # Re: tmpwatch
Posté par Flavien . En réponse au message nettoyage auto de /tmp. Évalué à 1.
[^] # Re: Hum...
Posté par Flavien . En réponse au message nettoyage auto de /tmp. Évalué à 2.
En fait c'était juste un dev tout simple au début qui as pris beaucoup d'importance au fur à mesure.
Pour info j'y ai bossé pendant 1 mois dans le repertoire /tmp. Donc c'est les fichiers qui n'ont pas été accédé depuis un certain temps qui doivent être supprimés...
Merci quand même.
[^] # Solution
Posté par Flavien . En réponse au message Problème d'AJAX. Évalué à 1.
Mon principal probème vient du faite que la console Javascript n'affiche pas les erreurs dans mon fichier .js et celà probablement parce que je l'utilise avec un bandeau en XUL.
En gros à force de triturer mon code dans tous les sens il devait me manquer une accolade quelque part. Après avoir tout repris ça fonctionne.
A noter que bizarrement ça ne fonctionne qu'en asynchrone mais ça ne me gêne pas.
function checkNewFiche() {
var numTA = document.getElementById("numTA");
var request = new XMLHttpRequest();
request.open("GET", "http://192.168.2.205/asterisk.php?ordre=checkfiche&agent(...)"+numTA.value, true);
request.onreadystatechange = function(){
// instructions de traitement de la réponse
if ((request.readyState == 4)){
alert(request.responseText);
}
}
request.send(null);
}
Merci
# La solution pour le TCP
Posté par Flavien . En réponse au message Problème avec Socket et/ou Telnet sur le manager d'Asterisk. Évalué à 1.
#!/usr/bin/perl
use IO::Socket::INET ;
my $EOL = "\015\012";
my $BLANK = $EOL x 2;
my $socket = IO::Socket::INET -> new (
PeerAddr => '10.0.0.1' ,
PeerPort => 5038 ,
Proto => 'tcp' ,
Type => SOCK_STREAM
);
$socket->autoflush(1);
$socket -> recv ( $message , 128 ) ;
print $message ;
print $socket "Action: Login${EOL}Username: offi${EOL}Secret: *****$BLANK";
while(1){
$socket -> recv ( $message , 128 ) ;
print $message ;
}
[^] # Re: Pistes...
Posté par Flavien . En réponse au message Questions réseaux.... Évalué à 1.
Pour les routes effectivement l'idées est bien de les retrouver à chaque démarrage. Le pointeur réponds parfaitement à ma question mais je n'ai pas su le faire remonter par Google...
Je vais checker les pistes que tu m'a données pour la deuxième question.
En tout cas un grand merci pour cette réponse si complète.
# après quelques tests supplémentaires
Posté par Flavien . En réponse au message mtr - Enormes pertes de paquets sur mon routeur. Évalué à 1.
Bon j'ai continué mes investigations et là je suis complètement paumé :(
en fait j'ai deux liens qui partent de mon site (Amiens) en direct vers mon opérateur VoIP (en IAX2 trunked, à Paris).
Ce sont deux abonnements ADSL sur deux lignes classiques FT. Mon opérateur à un accord avec un FAI et est directement connecté à ses routeurs. J'ai mes abonements sur ces deux liens (1024/256) chez ce même FAI ce qui nous permet d'avoir en quelque sorte une liaison louée. Voilà pour l'interconnection.
Pour tester j'ai donc essayé d'inverser mes deux interfaces Ethernet sur mon serveur Asterisk, mes deux lignes téléphoniques au niveau des routeurs, changé de routeur, changé de route... A chaque fois le problème se retrouve au même niveau !!! Toujours sur le lien utilisant le linksys (ou la livebox que j'ai utilisé pour faire un test) et jamais sur ma route utilisant mon routeur speedtouch.
Si quelqu'un avait ne serait-ce qu'une suggestion à me faire pour identifier mon problème... Je commence à me demander si ce n'est pas la commnde mtr qui merde. Avec un Ping -A je ne rencontre pas le problème. Et pourtant la qualité de la voie est indéniablement moin bonne sur mon lien qui pose problème.
Merci d'avance
Un exemple:
[root@asterisk tmp]# mtr --interval 0.02 --psize 128 193.xxx.xxx.240 --report
asterisk Snt: 10 Loss% Last Avg Best Wrst StDev
10.0.1.1 70.0% 0.6 0.6 0.5 0.6 0.1
gw.dslpool0.bgix.waycom.net 10.0% 40.2 38.0 36.2 44.1 2.7
bgix-lo.dslpool0.bgix.waycom.net 10.0% 44.4 39.6 38.0 44.4 2.3
wcm-lo.dslpool0.bgix.waycom.net 20.0% 40.3 40.2 38.3 42.2 1.0
v205.swr-1.par.waycom.net 30.0% 40.2 39.7 38.2 40.3 0.9
pnt-th2-gw.cust.waycom.net 20.0% 40.4 40.3 38.2 42.2 1.1
193.xxx.xxx.240 20.0% 40.2 40.9 40.1 42.1 1.0
en laissnt tourner quelques minutes, 10.0.1.1 tend vers 95% et les autres vers 1%
[^] # Re: noyau amd64 smp
Posté par Flavien . En réponse au message Optimisation pour Opteron. Évalué à 1.
L'utilisation du Dual-Core est donc totalement transparente pour le Kernel ?
J'hésite à passer à FC5 car il semble qu'il y est quelques soucis avec Zaptel qui est nécessaire à certaines fonctions d'Asterisk.
Debian ? Oui, dès que j'aurais le temps de la tester en dehors du boulot. Pour l'instant j'avoue mon faible pour rpm et yum (je connais urpmi bien sur et apt).
Merci pour tes réponses.