PDA

View Full Version : REGNUM LABS: 1. Cargar carpeta en memoria, mejora de rendimiento.


arlick
01-13-2010, 10:59 AM
Disclaimer:

Esto, aunque es fácil usarlo, los que sean nuevos o con pocos conocimientos es posible que no sepan realizarlo. Presupongo que el que quiera utilizar esto lo entiende. Importante notar que todos los comandos deben ejecutarse como root.

A mí me ocupa la carpeta de regnum 1.7 Gigas, y tengo 2 Gigas, no trataría de cargar todo, sino solo los archivos grandes de datos (dataX.sdb) y tal vez no todos.

Este lab va dirigido a gente que tenga al menos 2 Gigas de ram (o bien que sepa lo que se hace).

Cargar carpeta en memoria, mejora de rendimiento.

Consiste en que cargando la carpeta de regnum en memoria ram, en teoría, debería funcionar mejor el juego por ejemplo cuando hay muchas personas en pantalla (es de las pocas situaciones que se me ocurre que puede notarse).

Linux:


mkdir -p /mnt/tmp
mount -t tmpfs -o size=1G /mnt/tmp


Con lo anterior hemos creado una carpeta que vamos a usar para almacenar archivos y hemos dicho al sistema que todo lo que se meta en /mnt/tmp debe cargarse en la ram.

La opción "-o size=1G" indica que como máximo esa carpeta va a ocupar 1G, si ocupa más el resto irá directamente a la swap (modificarlo a gusto de cada uno).

Para nuestro caso subiríamos toda la carpeta de regnum, o lo que podamos (los archivos importantes son los dataX.sdb).

Por ejemplo:


cp -r /home/arlick/regnum /mnt/tmp


Y ya está, ya tenemos la carpeta de regnum en memoria ram. Si queremos dejar libre la memoria solo hay que borrar el contenido de la carpeta /mnt/tmp o desmontar directamente:


umount /mnt/tmp


Para comprobar si se nota algo en el rendimiento he hecho unas pruebas de escritura, no puedo asegurar que se llegue a notar usando regnum, pero la posibilidad está aquí.

_= D of S =_/home/alvaro # time dd if=/dev/zero of=/mount/prueba bs=1M count=400
400+0 records in
400+0 records out
419430400 bytes (419 MB) copied, 7.5324 s, 55.7 MB/s

real 0m7.618s
user 0m0.004s
sys 0m1.317s
_= D of S =_/home/alvaro # time dd if=/dev/zero of=/mount/temp/prueba bs=1M count=400
400+0 records in
400+0 records out
419430400 bytes (419 MB) copied, 1.00525 s, 417 MB/s

real 0m1.065s
user 0m0.003s
sys 0m0.974s


He usado /mount/prueba como fichero en disco y /mount/temp/prueba como fichero en ram, creo la diferencia se puede apreciar.

Windows:

-= Buscando información =-

No la encuentro T.T

DiegoGomez
01-13-2010, 11:14 AM
Muy bueno Arlick si funciona al usar regnum mas de uno te lo va agradecer.:thumb:

SirameK
01-13-2010, 02:29 PM
Disclaimer:

Esto, aunque es fácil usarlo, los que sean nuevos o con pocos conocimientos es posible que no sepan realizarlo. Presupongo que el que quiera utilizar esto lo entiende. Importante notar que todos los comandos deben ejecutarse como root.

A mí me ocupa la carpeta de regnum 1.7 Gigas, y tengo 2 Gigas, no trataría de cargar todo, sino solo los archivos grandes de datos (dataX.sdb) y tal vez no todos.

Este lab va dirigido a gente que tenga al menos 2 Gigas de ram (o bien que sepa lo que se hace).

Cargar carpeta en memoria, mejora de rendimiento.

Consiste en que cargando la carpeta de regnum en memoria ram, en teoría, debería funcionar mejor el juego por ejemplo cuando hay muchas personas en pantalla (es de las pocas situaciones que se me ocurre que puede notarse).

Linux:


mkdir -p /mnt/tmp
mount -t tmpfs -o size=1G /mnt/tmp


Con lo anterior hemos creado una carpeta que vamos a usar para almacenar archivos y hemos dicho al sistema que todo lo que se meta en /mnt/tmp debe cargarse en la ram.

La opción "-o size=1G" indica que como máximo esa carpeta va a ocupar 1G, si ocupa más el resto irá directamente a la swap (modificarlo a gusto de cada uno).

Para nuestro caso subiríamos toda la carpeta de regnum, o lo que podamos (los archivos importantes son los dataX.sdb).

Por ejemplo:


cp -r /home/arlick/regnum /mnt/tmp


Y ya está, ya tenemos la carpeta de regnum en memoria ram. Si queremos dejar libre la memoria solo hay que borrar el contenido de la carpeta /mnt/tmp o desmontar directamente:


umount /mnt/tmp


Para comprobar si se nota algo en el rendimiento he hecho unas pruebas de escritura, no puedo asegurar que se llegue a notar usando regnum, pero la posibilidad está aquí.

_= D of S =_/home/alvaro # time dd if=/dev/zero of=/mount/prueba bs=1M count=400
400+0 records in
400+0 records out
419430400 bytes (419 MB) copied, 7.5324 s, 55.7 MB/s

real 0m7.618s
user 0m0.004s
sys 0m1.317s
_= D of S =_/home/alvaro # time dd if=/dev/zero of=/mount/temp/prueba bs=1M count=400
400+0 records in
400+0 records out
419430400 bytes (419 MB) copied, 1.00525 s, 417 MB/s

real 0m1.065s
user 0m0.003s
sys 0m0.974s


He usado /mount/prueba como fichero en disco y /mount/temp/prueba como fichero en ram, creo la diferencia se puede apreciar.

Windows:

-= Buscando información =-

No la encuentro T.T

Leyendo rapidito y por encima, creo que es posible pero solo mediante software de terceros (o una aplicación que arlick nos haga) Información (http://www.redmater.com/general/usar-ram-disco-duro-windows-velocidad-cache-ramdisk)

sunos
01-13-2010, 05:10 PM
Arlick, estaria bueno poder hacerlo con unionfs (o similar), asi podriamos "unir" los directorios y tener solo parte en ram , asi nos ahorramos los enlaces simbolicos y demas

mmm... ahora me pongo a ver si hay algo como unionfs para linux =)

edit rapidito : cuack! en pense que solo estaba en los *bsd, bueno en linux se pede hacer, seria lo ideal para usar RO desde un ramdisk =)

Edit2: igual en Regnum no creo que se note demasiado ya que cada vez que carga una zona la misma queda en memoria asi que los accesos a disco por lo que pude ver son relativamente bajos, creo que no seria muy conveniente, contando el espacio de cache que usa regnum en mi pc despues de un rato corriendo se ocupa comodamente unos 700 u 800 megas y los accesos a disco son realmente bajos, para otras cosas los ramdisk son una magia, por ejemplo para cargar aplicaciones que abrimos y cerramos frecuentemente o si tenemos 4gb o mas para cargar gnome/kde con sus apps

arlick
01-13-2010, 05:53 PM
Arlick, estaria bueno poder hacerlo con unionfs (o similar), asi podriamos "unir" los directorios y tener solo parte en ram , asi nos ahorramos los enlaces simbolicos y demas

mmm... ahora me pongo a ver si hay algo como unionfs para linux =)

edit rapidito : cuack! en pense que solo estaba en los *bsd, bueno en linux se pede hacer, seria lo ideal para usar RO desde un ramdisk =)

Edit2: igual en Regnum no creo que se note demasiado ya que cada vez que carga una zona la misma queda en memoria asi que los accesos a disco por lo que pude ver son relativamente bajos, creo que no seria muy conveniente, contando el espacio de cache que usa regnum en mi pc despues de un rato corriendo se ocupa comodamente unos 700 u 800 megas y los accesos a disco son realmente bajos, para otras cosas los ramdisk son una magia, por ejemplo para cargar aplicaciones que abrimos y cerramos frecuentemente o si tenemos 4gb o mas para cargar gnome/kde con sus apps

Supongo que tienes razón, aunque siempre molesta mucho cuando entras de primeras a una guerra y se te va a tirones.

Mmmm... tal vez podría cargar el netbeans o el urban terror... buajajaja

sunos
01-13-2010, 05:56 PM
Supongo que tienes razón, aunque siempre molesta mucho cuando entras de primeras a una guerra y se te va a tirones.

Mmmm... tal vez podría cargar el netbeans o el urban terror... buajajaja
juaz xD, en el UT seguro los mapas te van a cargar terriblemente rapido :-P

igual fijate, si te vas a armar algo usate un unionfs y usalo como un "snap" asi no te vas a tener que tomar tantas molestias para mover las cosas al ramdisk, o sino create otro directorio con lo que no quieras poner en el ramdisk y con unionfs podes laburar el ramdisk y ese directorio como 1 solo y no te complicas las vida con enlaces y queda mas prolijo ^^

Hao_
01-13-2010, 06:00 PM
Para los neofitos en el tema, como viene la mano con Windows??? o todavia no se sabe nada?