Forum: Rails France difference de perf entre rails 2.3.2 et 2.3.5

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Antoine G. (Guest)
on 2010-01-15 20:33
Bonjour,

J'ai les deux serveur suivant à disposition :
Serveur 1 :
    Intel(R) 2 core  @ 2.66GHz
    4 GO de ram
    Rails 2.3.2
    ruby 1.8.5
    gem

Serveur 2
  Intel(R) Xeon(R) 4 core  @ 2.83GHz
  8 GO de ram
  Rails 2.3.5
  ruby 1.8.7
  gem 1.3.1


A priori, le serveur 2 devrai être plus rapide. Pourtant, j'ai installer
la même application sur les deux serveur. J'ai une action un peu longue
dans mon appli rails qui génère pas mal de fichiers. Cette action prend
1.5 fois plus de temps sur le server 2 que sur le server 1.

Est ce que vous auriez une idée de ce que je peux vérifier dans la
configuration de rails ou de ruby qui pourrait expliquer cette
différence ?

Cordialement
Cyril M. (Guest)
on 2010-01-16 13:01
(Received via mailing list)
Le 15/01/10 19:33, Antoine Guero_loco a écrit :
> Serveur 2
> 1.5 fois plus de temps sur le server 2 que sur le server 1.
Si elle génére beaucoup de fichier, il faut comparer aussi la vitesse
d'écriture de tes disques.
Fabien J. (Guest)
on 2010-01-17 22:55
(Received via mailing list)
2010/1/16 Cyril M. <removed_email_address@domain.invalid>:
>>
>> dans mon appli rails qui génère pas mal de fichiers. Cette action prend
>> Cordialement
>>
>

As-tu bien la même distribution (linux, bsd, ...) sur les 2 machines ?
le même filesystem ? la même version du kernel. Les 2 versions de ruby
sont elles compilées avec les mêmes options et pour la même cible ?

Je te recommandes aussi de faire un test plus précis, isole ta
fonction effectuant le traitement et utilise une lib comme la lib
benchmark standard pour exécuter ton code plusieurs fois et en tirer
une moyenne :
http://ruby-doc.org/stdlib/libdoc/benchmark/rdoc/c...
Antoine G. (Guest)
on 2010-01-18 11:27
Bonjour,

Merci pour vos réponses. Voici quelques précisions et test que j'ai
fait.


> As-tu bien la même distribution (linux, bsd, ...) sur les 2 machines ?
Serveur 1 (Duo core 2.6 Ghz ) est sur cent os 5.2 et un noyau 2.6.24
Serveur 2 (quadri core 2.8 GHz) est sur debian 5.0 et noyau 2.6.31

> le même filesystem ?
Les deux sont en ext3

> Les 2 versions de ruby
Serveur 1 : ruby 1.8.5
Serveur 2 : ruby 1.8.7

> sont elles compilées avec les mêmes options et pour la même cible ?
Les deux installations de ruby viennent des packages standards de la
distribution (installé avec yum pour centos et apt-get pour debian)

> Je te recommandes aussi de faire un test plus précis, isole ta
> fonction effectuant le traitement et utilise une lib comme la lib
> benchmark standard pour exécuter ton code plusieurs fois et en tirer
> une moyenne :
> http://ruby-doc.org/stdlib/libdoc/benchmark/rdoc/c...

J'ai fait quelques test supplémentaires :

Test 1 : Rails. J'ai créé l'action suivante :
    def test_server_file
        10000.times do |i|
          str_file = "/home/fluxod/test/test_performance.test#{i}"
          file = File.new(str_file, "w")
          10000.times do
            file.puts "keskisepasse"
          end
          file.close
       end
   end

Cette action prend significativement plus de temps sur le serveur 2
(~260 secondes) que sur le serveur 1 (~200 secondes)

Test 2 : Ruby. J'ai lancé la même fonction en irb, et cette fois ci le
serveur 2 est plus rapide.

Je penche donc vers un problème de
configuration/compilation/installation de rails.

Voila, je sèche un peu, si vous avez des idées de ce que je peux
checker/tester

cord.
This topic is locked and can not be replied to.