probé en fedora 11 y funciona sin problemas, con 3 tarjetas da 90mbps en promedio. pero no hay xen en fedora 11, solo kvm y necesito xen si o si. (y es casi 100% necesario usar centos)

:( creo que tendré que comprar unas infiniband

gracias.

El 10-07-2009, a las 19:29, Aldrin Martoq escribió:

On Fri, 2009-07-10 at 17:13 -0400, Felipe Román Márquez wrote:
tiene 6 discos sas de 15.000rpm en raid0 (cada server) en velocidad
peak da casi 800mbps, y no baja de 480mbps en velocidad sostenida.
y en cpu, tiene 2 x quadcore nehalem (no hay nada más potente en el
mercado hasta ahora) son 8 cores por máquina y 16 theads en total ya
que tienen HT.

Lei tus specs (por eso los puse bajo mi comentario), y aun asi los
procesos que hablamos son todos UNI-THREAD (no te sirven los 8 cores),
son pesados en CPU y 800mbps es poco para tus discos (cuidado con las
unidades!). Como referencia en mi laptop:
- hdparm -T /dev/sda
   1128.20 MiB/s
- hdparm -t /dev/sda
   61.03 MiB/s
- dd if=archivo2gigas of=/dev/null (no esta en cache obvimente!)
   38.1 MiB/s

imposible que haya cuello de botella por procesador ni por discos,
además las máquinas no tienen carga, están recién instaladas y no
puedo seguir avanzando hasta que la performance de red suba
considerablemente.

Pero *hiciste la prueba*? Miraste el uso con top (presiona "1" para
separar por CPU) mientras corrias ssh por ejemplo? Hiciste scp o rsync a
localhost?

Aca un scp a localhost me da penosos 13 MiB/s y entre dos laptops por
gigabit me da 24.9 MiB/s, asi que 50MiB/s no me parece malo para tus
servidores: fijate que con scp entre 2 tarros (24 MiB/s) obtengo menos
que leer directamente el disco (38 MiB/s). SCP no es gratis y rsync anda
por ahi...

Puedes intentar con el par de programas que pongo abajo, los cuales solo
involucran CPU y red... con ellos obtengo:

- a localhost: 750 MiB/s
- entre 2 laptops conectados entre ellos por gigabit: 111 MiB/s

------servidor.py----------
#!/usr/bin/env python

import SocketServer,sys

class MyServer(SocketServer.ThreadingTCPServer):
 allow_reuse_address = True

class EchoRequestHandler(SocketServer.BaseRequestHandler):
 def handle(self):
   mega = "A"*1024*1024
   data = self.request.recv(1024)
   if data.startswith('test'):
     try:
       sys.stdout.write('%s: ' % str(self.client_address))
       numero = int(data[5:])
       for i in range(numero):
         if i % 10 == 0:
           sys.stdout.write('.')
           sys.stdout.flush()
         self.request.send(mega)
       sys.stdout.write('\n')
       return
     except Exception, e: print e

server = MyServer(('', 55555), EchoRequestHandler)
try:
 server.serve_forever()
except:
 server.server_close()
---------fin-servidor.py------

-----cliente.py------------
#!/usr/bin/env python

import socket,sys,time

try:
   sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
   sock.connect((sys.argv[1], 55555))
   sock.send("test %s" % sys.argv[2])
except IndexError:
   sys.stderr.write("""Uso: %s <IP servidor> <# MegaBytes>
Ejemplo: %s 127.0.0.1 10
""" % (sys.argv[0], sys.argv[0]))
   sys.exit(2)
except socket.error, msg:
   sys.stderr.write("[ERROR] %s\n" % msg[1])
   sys.exit(2)

recv = 1024*8
t1 = time.time()
data = sock.recv(recv)
l = 0
while len(data):
   l += len(data)
   data = sock.recv(recv)
t2 = time.time()
sock.close()

delta=t2-t1
KiB=l/1024
MiB=l/1024/1024
KiBps=KiB/delta
MiBps=MiB/delta
print """Largo: %d MiB
tiempo: %f segundos
ancho banda:
 %f MiB/s
 %f KiB/s""" % (MiB, delta, MiBps, KiBps)
------------fin-cliente.py----------------





--
Aldrin Martoq <[email protected]>
http://aldrin.martoq.cl/



Responder a