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...

Six Sigma

There’s a definition on wikipedia. It’s much much wider than my tiny vision of this business management strategy.

But basically this strategy says : Fix the source of every problem and not each problem. In a factory, it means that have to change the production process to reduce the probability of making defective pieces instead of fixing pieces faster. That means you have to spend time on fixing the problem. So this stategy also means : Spend time to save time. (I know bold formatting is evil but well… I’m evil sorry)

How that applies to me or you ? In fact everywhere. For me it can be seen as the creation of automated processes to replace some humanely driven processes. If you’ve already done a task twice and it can be optimized / automatized, then do it.

I’ve seen a lot of Sharepoint projects that would benefit of some “six sigma” thoughts. They often end up with a huge installation manual instead of optimizing the Sharepoint deployment package of each project.

GD Star Rating
loading...

Linux prioritization : do more with less

I find the concept of prioritization very interesting. It just enables you to do more with less. Doesn’t that sound great ?

Let’s say you want to be able to respond to user requests as fast as possible but update your data in a low priority manner :
You can set the process CPU priority from -20 (high priority) to 19 (low priority) by using the command :

1
nice -n <priority> <command>

You can set the process IO priority in 4 classes (0: none, 1: realtime, 2: best-effort, 3: idle) with some priorities within these classes (0-7, lower being higher prio). But you have to enable the CFQ (Complete Fair Queueing) scheduler first by typing something like that :

1
echo cfq >/sys/block/hda/queue/scheduler

So the ultimate low priority command will be

1
ionice -c 3 nice -n 20 <command>

But sometimes changing the CPU and IO priority won’t change much because the problem you might have might occur within the SQL server for say. So what you do ? Well, you could slow down your low priority program. If you have a low priority php script, you could do it like that :

1
2
3
4
5
6
7
<?php
while( true ) {
    list( $load ) = explode(' ', file_get_contents('/proc/loadavg') );
    echo 'sleeping '.$load."s\n";
    usleep( $load * 1000000);
}
?>

This program will make a loop that will slow down with the increasing load. It means that this program will always keep space of the system, even if it’s run hundreads of time.

So yeah, you can now manage efficiently CPU and disk. Are you done ? Not really, there’s still the memory issue. Memory (RAM) is always fast unless there’s no memory left, then it’s paged and everything becomes thousand times slower. You can only disable the virtual memory (swap on Linux), set some memory allocation limits (with ulimit), but that’s pretty much it.
I would personnally recommend to disable swap and always take more RAM than needed. On servers swap prevent them from having to kill process, but they are so much slowed by it that the whole system is slowed down. And then even ssh server is so slow you have an ssh timeout before reaching the shell.

So, Linux has a great scheduling capacity. But what about NOT scheduling AT ALL ? Well, Linux is also very able to do that. You can put some process in real-time mode, these processes won’t be interupted by anything unless they are sleeping or waiting for an I/O event.
You can use the Real-Time (RT) mode using the rtprio command :

1
rtprio 99 <command>
GD Star Rating
loading...