De retour chez OVH


Je suis de retour chez OVH. C’est plus cher, je n’ai plus de backup automatique et plus les garanties offertes par un serveur virtuel mais au moins ça fonctionne. Si vous envisagez de passer chez 1And1, préparez vous à rejoindre le cercle des utilisateurs mécontents (et généralement engagés sur 12 ou 24 mois).

J’ai eu la mauvaise surprise de m’appercevoir que MySQL en Debian/stable était plus vieux que le MySQL de CentOS 5. Mais je m’en suis apperçu après coup, il me semblait évident que ça ne serait pas le cas. Si vous vous êtes un jour demandé ce que ça faisait de lancer un serveur MySQL avec des fichiers provenants d’une version plus récentes… Et bien ça ne donne rien de bon, les requêtes aboutissent rarement et de façon aléatoire (la même requête peut fonctionner ou ne pas fonctionner). On reçoit un bon paquet d’erreurs “Lost connection to the server”.

Pour un projet sur lequel je travail pendant mon temps libre avec d’autres personnes, j’utilise maintenant NetBeans + Dropbox.
NetBeans c’est pour moi le meilleur IDE PHP du moment mais le soucis c’est qu’en mode FTP il ne fait qu’envoyer les fichiers modifiés. Lors de la création du projet NetBeans il télécharge tous les fichiers et après il ne fait que les envoyer. Cela a pour conséquence notable d’empêcher le travail à plusieurs (on risque d’écraser des fichiers modifiés).
Pour remedier à ça, en plus de l’accès FTP, j’ai mis un répertoire DropBox partagé sur le serveur et ça marche niquel. Les développeurs et le serveur sont synchronisés. Bien sur je fais 2x plus de backups parce que ça fait assez peur (en une fausse manip un développeur peut effacer tout le répertoire de développement).

Sinon j’ai tenté d’installer Nexenta 3b1 sur une machine VMWare et ça n’a malheureusement pas du tout marché. L’installeur était très très très long et il a crashé peu après avoir atteint 100%. Je ne m’attendais pas à grand chose la part d’un système qui met 3h à s’installer de toute façon.

GD Star Rating
loading...
Posted in French. Tags: , , , . No Comments »

French and English

Hi my dear visitors,

You are more than 3 000 each month now. So maybe I choose try to make it easier for everyone so that you only subscribe to the feed in the languages you understand :
- all languages RSS stream
- english only RSS stream
- french only RSS stream

By the way, I updated the TC65 FAQ to add questions and answers collected from the javacint group. I created this google group a year ago for developpers willing to exchange about the TC65. It started quite slowly but it now has 28 members. And considering how hard it is to find any information on this chip that’s a lot. I think it helped a lot of people.


Translation for all the retarded french dudes :
Le blog a atteint 3000 visiteurs mensuel. Peut-être que je devrais maintenant faire en sorte que chacun n’ait à lire que les langue qu’il comprend :
- flux RSS dans les deux langues
- flux RSS en anglais uniquement
- flux RSS en français uniquement

GD Star Rating
loading...

Serveur privé 1&1: Une belle arnaque

J’avais 2 serveurs chez OVH et Dedibox qui étaient en redondance complète (fichiers, mysql, web, mails, dns) avec du DNS failover. N’ayant plus les même besoins, je voulais réduire mes coûts de serveur tout en gardant un serveur dont je puisse gérer le système. J’ai pris l’offre de serveur dédié de 1 And 1.

Et bien je peux vous dire que je regrette. En gros chez 1&1 on a 4 Go de mémoire “disponibles” et 1 Go de mémoire “réservée”. C’est un peu comme l’illimité d’orange qui est en fait limité. La mémoire disponible est là “parfois” et on ne peut même pas préciser qu’on en veut pas. Et la mémoire réservée, j’ai bien l’impression qu’elle ne l’est pas.

Le soucis que j’ai c’est que par moment le noyau virtualisé refuse d’allouer de la mémoire et là tout est bloqué :

1
2
3
[Thu Mar 11 18:45:35 2010] [error] (12)Cannot allocate memory: fork: Unable to fork new process
[Thu Mar 11 18:45:45 2010] [error] (12)Cannot allocate memory: fork: Unable to fork new process
[Thu Mar 11 18:49:03 2010] [error] server reached MaxClients setting, consider raising the MaxClients setting

Quand apache signale qu’il a atteint les “MaxClients” c’est qu’il est crashé. Et là c’est perdu, le serveur accepte les connexions et ne répond jamais.

Le “cannot allocate memory” c’est tout à fait scandaleux. Comment on peut prétendre offrir un serveur virtualisé si on est pas capable de garantir un minimum de mémoire. Le pire étant quand même que je ne consomme vraiment pas beaucoup de RAM, je ne dois jamais dépasser les 800 Mo. Mes stats actuelles sont :

1
2
3
4
5
# free -m
             total       used       free     shared    buffers     cached
Mem:          4096        570       3525          0          0          0
-/+ buffers/cache:        570       3525
Swap:            0          0          0

Donc là j’ai l’idée brillante d’activer un fichier de swap mais au moment où j’éxecute “swapon” en fait ce n’est pas possible :

1
2
3
dd if=/dev/zero of=/var/swapfile bs=1M count=1024
mkswap /var/swapfile
swapon /var/swapfile

J’obtiens un bel “Operation not permitted” sur cette dernière commande. En effet c’est Virtuozzo qui est sensé assurer la mise en swap de la mémoire à son niveau. C’est là aussi qu’on se dit que la virtualisation noyau c’est pas forcément top.

C’est assez incroyable. Je préférerais 512 Mo de RAM “pour de vrai” que 4 Go de RAM sur lesquels je ne peux pas compter.

Mais ce n’est pas tout. Pendant un moment le serveur n’était quasiment plus joignable, j’avais 3 paquets sur 4 qui se perdaient. Puis un autre jour la charge atteignait des niveaux affolants en continu avec un serveur quasiment au repos. Le support m’a dis que j’avais du mal configurer un truc. La panne a duré 2 jours mais bien sur ils n’ont répondu que 2 jours plus tard, donc forcément, ils ne constatent pas de problème. Et il faut croire qu’ils n’ont pas d’outils de monitoring de leur serveur pour reconnaitre le problème.

Bref je m’en vais de chez eux. Je vais tout faire pour ne pas payer l’argent de la période d’engagement, mais je préfère encore perdre cet argent qu’avoir à supporter (et plus exactement faire supporter aux visiteurs) des sites à la disponibilité aléatoire.

Par ailleurs, Debian n’était dispo qu’en 32 bits chez eux, j’avais le choix entre CentOS 64 bits et Debian 32 bits. C’est le genre de choix que je n’aime pas trop faire.

GD Star Rating
loading...

Rue Du Fric


For my english readers, you’re out of luck, this is a french-only post because it’s about a french online game : Rue Du Fric (can be translated to “street of money”, or maybe “street of gold”). But you can still have a look at the game if you’re interested.

Le jeu Rue Du Fric développé par la jeune startup BeeMoov est un jeu 100% javascript + AJAX. Il est très bien fini, il repose un univers extensible “à l’infini” au fur et à mesure de l’arrivée de nouveaux joueurs et l’occupation des sols. Vous pouvez acheter du terrain, placer des maisons dessus, gagner de l’argent, vendre et acheter des biens aux membres ou aux enchères, emprunter de l’argent à la banque et tout ça en interagissant en continu avec les autres.

Le jeu vient de démarrer, l’univers est déjà pas mal occupé avec une belle étendue de terrain couverte. Si vous êtes un geek, allez apprécier la prouesse technique et filez l’adresse à vos amis. Pour les autres, testez et éclatez vous.

BeeMoov a lancé il y a quelques années Ma Bimbo dont le succès ne se dément plus.

GD Star Rating
loading...

Etrange MySQL

Aujourd’hui, j’ai décidé d’optimiser une recherche MySQL de recherche par proximité de points spatiaux. En effet, j’avais une requête qui prenait 250 ms en moyenne.

Je recherche donc quelques infos et là, bonne surprise je tombe sur un document issu de l’entreprise MySQL sur le sujet. En utilisant l’optimisation qu’ils recommandent (par approximation préalable en un carré de recherche), j’arrive à réduire les requêtes à des temps allant de 5 à 35 ms.

Et puis, je finis de lire le document et je m’aperçois que MySQL possède une extension spatiale. Je regarde donc, ça se base sur les R-Tree, là je sens que j’ai trouvé la solution parfaite. Mais NON, les R-Tree ne sont disponible qu’en MyISAM. La création d’index spatiaux est interdite en InnoDB. De même, les index FULLTEXT non disponibles en InnoDB.

On a le choix entre avoir une base de données peu solide et une base de données avec moins de fonctionnalités. Il existe bien sur des solutions, comme de dédoubler ses tables en InnoDB et MyISAM pour obtenir des index FULLTEXT. Mais ça devient vite contraignant.

Enfin, je tiens à relativiser cette petite critique. La plupart des personnes, surtout en entreprise, ne connaissent MySQL que pour le moteur MyISAM et le trouvent de fait pourri. Mais peu savent que pour la gestion des données critiques, MySQL avec le moteur InnoDB est parfait. Je ne suis jamais parvenu à obtenir une quelconque corruption des données même après de bonnes maltraitances (coupure de courant en pleine écriture massive). Ses capacités relationnelles et transactionnelles en font un très bon moteur.

Pour l’instant j’ai des tables qui contiennent un peu plus de 10 000 000 lignes et InnoDB tient sans problème, je vous en reparle quand ça atteindra les 20 000 000 lignes.

Ajout du 15/05/2010 :
L’expérience de ce projet s’est arrêtée à 35M lignes et InnoDB a tenu sans aucun soucis.

GD Star Rating
loading...
Posted in French. Tags: . No Comments »