Empezando la ultima semana de "vacaciones", se me ocurrió poner a prueba mi computador, ya que al ver muchos windowzeros overclockeando y haciéndole benchmarks a sus computadoras. Entonces llego a mi mente esa sensacion de que por que en windows si y en linux no, pues ese no, realmente no existe, por que buscándole y rascándole un poco a las búsquedas de google y pensándole un poco pude juntar muchas ideas que se me vinieron a la mente y también crear este tutorial que ya tenia planeado desde hace una semana XP. Pero bueno empecemos a destripar la computadora, eh aquí una lista de software necesario para realizar esto:
- hwinfo : Este software nos ayuda a identificar los dispositivos del sistema.
- lmsensors : Este software nos ayuda a saber los datos de nuestro CPU.
- Super_pi : El clásico para benchmark ahora para Linux.
- algun monitor del sistema como el System Monitor de Gnome.
- inteligencia : esto no es software pero te va a ayudar mucho XD.
despues de instalar todo el software requerido, vamos a revisar nuestro sistema:
yo tengo las temperaturas agregadas al panel para facilitar la lectura de estas.
ahora vienen los siguientes pasos a realizar para ver con mas detalle tu sistema:
para esto utilizaremos el siguiente comando: cat /proc/cpuinfo el cual nos mostrara datos sobre nuestro CPU
algo masomenos parecido a esto:
---------------------------------------------------------------------------------------------------------
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 15
model           : 67
model name      : Dual-Core AMD Opteron(tm) Processor 1212
stepping        : 2
cpu MHz         : 2000.000
cache size      : 1024 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 2
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy
bogomips        : 4021.62
TLB size        : 1024 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management: ts fid vid ttp tm stc
processor       : 1
vendor_id       : AuthenticAMD
cpu family      : 15
model           : 67
model name      : Dual-Core AMD Opteron(tm) Processor 1212
stepping        : 2
cpu MHz         : 2000.000
cache size      : 1024 KB
physical id     : 0
siblings        : 2
core id         : 1
cpu cores       : 2
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy
bogomips        : 4018.62
TLB size        : 1024 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management: ts fid vid ttp tm stc
---------------------------------------------------------------------------------------------------------
ahora sigue ver datos sobre el voltaje
para eso  usamos este comando:
sensors
el cual mostrara algo como esto:
---------------------------------------------------------------------------------------------------------
k8temp-pci-00c3
Adapter: PCI adapter
Core0 Temp:
       +33°C
Core1 Temp:
       +35°C
it8716-isa-0290
Adapter: ISA adapter
VCore:     +1.26 V  (min =  +0.00 V, max =  +4.08 V)
VDDR:      +3.26 V  (min =  +0.00 V, max =  +4.08 V)
+3.3V:     +0.00 V  (min =  +0.00 V, max =  +4.08 V)   ALARM
+5V:       +4.89 V  (min =  +0.00 V, max =  +6.85 V)
+12V:     +11.58 V  (min =  +0.00 V, max = +16.32 V)
in5:       +0.00 V  (min =  +0.00 V, max =  +4.08 V)   ALARM
in6:       +0.00 V  (min =  +0.00 V, max =  +4.08 V)   ALARM
5VSB:      +4.78 V  (min =  +0.00 V, max =  +6.85 V)
VBat:      +2.94 V
fan1:     5152 RPM  (min =    0 RPM)
fan2:        0 RPM  (min =    0 RPM)
fan3:        0 RPM  (min =    0 RPM)
temp1:       +40°C  (low  =    -1°C, high =  +127°C)   sensor = diode
temp2:       +42°C  (low  =    -1°C, high =  +127°C)   sensor = thermistor
temp3:        -1°C  (low  =    -1°C, high =  +127°C)   sensor = thermistor
vid:      +1.350 V
---------------------------------------------------------------------------------------------------------
claro sigue la memoria
y como el cat /proc/meminfo escupe muchas cosas vamos a correr como root el siguiente comando
hwinfo --memory
que mostrara algo como lo siguiente:
---------------------------------------------------------------------------------------------------------
01: None 00.0: 10102 Main Memory
[Created at memory.61]
Unique ID: ****.***********
Hardware Class: memory
Model: "Main Memory"
Memory Range: 0x00000000-0x7dba9fff (rw)
Memory Size: 2 GB   Config Status: cfg=new, avail=yes, need=no, active=unknown
---------------------------------------------------------------------------------------------------------
Kernel
uname -a
---------------------------------------------------------------------------------------------------------
Linux opteron 2.6.21.1 #1 SMP Sun May 6 09:14:47 MDT 2007 x86_64 GNU/Linux
---------------------------------------------------------------------------------------------------------
ahora sigue lo bueno. Estos datos que acabamos de tomar son para comparativa solamente, aparte de que te ayudan a tener un control si deseas hacer overclocking,
usaremos el siguiente comando para hacer nuestro benchmark dentro de la carpeta de super pi.
./super_pi 
los numeros de iteraciones que equivalen a los "M" son los siguientes
1M = 19 iteraciones, en este caso serán 20)
2M = 20 iteraciones, Linux 21
8M = 22 iteraciones, Linux 23
No tengo idea de por que Iteraciones + 1, pero si no lo ponemos podriamos caer en un error. como me sucedió a mi, en el caso de 2M
en el cual un supere a un E6420 overclockeado a 4Ghz. y me pregunte esta bien que Linux funcione mas rápido que windows y que este en 64 bits pero creo que esto es demasiado, luego vi en unos foros que se utiliza Iteraciones + 1.
pero bueno eh aquí mis tablas por si quieren comparar:
1M
---------------------------------------------------------------------------------------------------------
Version 2.0 of the super_pi for Linux OS
Fortran source program was translated into C program with version 19981204
f2c, then generated C source program was optimized manually.
pgcc 3.2-3 with compile option of "-fast -tp px -Mbuiltin -Minline=size:1000 -Mnoframe -Mnobounds -Mcache_align -Mdalign -Mnoreentrant" was used for the
compilation.
------ Started super_pi run : Tue Aug 21 00:56:50 MDT 2007
Start of PI calculation up to 1048576 decimal digits
End of initialization. Time=       0.460 Sec.
I= 2 L=       0        Time=       1.620 Sec.
I= 3 L=       1        Time=       1.616 Sec.
I= 4 L=       2        Time=       1.616 Sec.
I= 5 L=       5        Time=       1.616 Sec.
I= 6 L=      10        Time=       1.608 Sec.
I= 7 L=      21        Time=       1.624 Sec.
I= 8 L=      43        Time=       1.620 Sec.
I= 9 L=      87        Time=       1.616 Sec.
I=10 L=     174        Time=       1.624 Sec.
I=11 L=     349        Time=       1.612 Sec.
I=12 L=     698        Time=       1.620 Sec.
I=13 L=    1396        Time=       1.616 Sec.
I=14 L=    2794        Time=       1.608 Sec.
I=15 L=    5588        Time=       1.608 Sec.
I=16 L=   11176        Time=       1.600 Sec.
I=17 L=   22353        Time=       1.584 Sec.
I=18 L=   44707        Time=       1.528 Sec.
I=19 L=   89415        Time=       1.432 Sec.
End of main loop
End of calculation.    Time=      31.930 Sec.
End of data output.    Time=       0.180 Sec.
------ Ended super_pi run : Tue Aug 21 00:57:22 MDT 2007
---------------------------------------------------------------------------------------------------------
2M
Version 2.0 of the super_pi for Linux OS
Fortran source program was translated into C program with version 19981204 of
f2c, then generated C source program was optimized manually.
pgcc 3.2-3 with compile option of "-fast -tp px -Mbuiltin -Minline=size:1000 -Mnoframe -Mnobounds -Mcache_align -Mdalign -Mnoreentrant" was used for the
compilation.
------ Started super_pi run : Tue Aug 21 01:09:43 MDT 2007
End of initialization. Time=       1.048 Sec.
I= 1 L=       0        Time=       3.068 Sec.
I= 2 L=       0        Time=       3.516 Sec.
I= 3 L=       1        Time=       3.520 Sec.
I= 4 L=       2        Time=       3.524 Sec.
I= 5 L=       5        Time=       3.528 Sec.
I= 6 L=      10        Time=       3.536 Sec.
I= 7 L=      21        Time=       3.504 Sec.
I= 8 L=      43        Time=       3.488 Sec.
I= 9 L=      87        Time=       3.484 Sec.
I=10 L=     174        Time=       3.492 Sec.
I=11 L=     349        Time=       3.496 Sec.
I=12 L=     698        Time=       3.540 Sec.
I=13 L=    1396        Time=       3.544 Sec.
I=14 L=    2794        Time=       3.532 Sec.
I=15 L=    5588        Time=       3.528 Sec.
I=16 L=   11176        Time=       3.528 Sec.
I=17 L=   22353        Time=       3.500 Sec.
I=18 L=   44707        Time=       3.444 Sec.
I=19 L=   89415        Time=       3.360 Sec.
I=20 L=  178831        Time=       3.132 Sec.
End of main loop
End of data output.    Time=       0.356 Sec.
Total calculation(I/O) time=      73.377(       4.428) Sec.
------ Ended super_pi run : Tue Aug 21 01:10:58 MDT 2007
8M
---------------------------------------------------------------------------------------------------------
Version 2.0 of the super_pi for Linux OS
Fortran source program was translated into C program with version 19981204 of
f2c, then generated C source program was optimized manually.
pgcc 3.2-3 with compile option of "-fast -tp px -Mbuiltin -Minline=size:1000
compilation.
------ Started super_pi run : Tue Aug 21 01:11:44 MDT 2007
Start of PI calculation up to 8388608 decimal digits
End of initialization. Time=       5.336 Sec.
I= 1 L=       0        Time=      14.901 Sec.
I= 2 L=       0        Time=      16.865 Sec.
I= 3 L=       1        Time=      16.985 Sec.
I= 4 L=       2        Time=      16.977 Sec.
I= 5 L=       5        Time=      16.893 Sec.
I= 6 L=      10        Time=      16.953 Sec.
I= 7 L=      21        Time=      16.853 Sec.
I= 8 L=      43        Time=      16.837 Sec.
I= 9 L=      87        Time=      16.853 Sec.
I=10 L=     174        Time=      16.877 Sec.
I=11 L=     349        Time=      16.917 Sec.
I=12 L=     698        Time=      16.833 Sec.
I=13 L=    1396        Time=      16.841 Sec.
I=14 L=    2794        Time=      16.841 Sec.
I=16 L=   11176        Time=      16.841 Sec.
I=17 L=   22353        Time=      16.845 Sec.
I=18 L=   44707        Time=      16.809 Sec.
I=19 L=   89415        Time=      16.745 Sec.
I=20 L=  178831        Time=      16.433 Sec.
I=21 L=  357662        Time=      15.881 Sec.
I=22 L=  715326        Time=      14.933 Sec.
End of main loop
End of calculation.    Time=     382.220 Sec.
Total calculation(I/O) time=     383.684(      42.443) Sec.
------ Ended super_pi run : Tue Aug 21 01:18:30 MDT 2007
---------------------------------------------------------------------------------------------------------
bueno ya tenemos nuestros datos y siguen las preguntas del millon:
1) Linux tiene ventajas en cuanto a uso del hardware sobre windows?
R: Yo tengo mi kernel compilado especialmente para CPU's Opteron, cosa que no se puede hacer en windows. no se si esto altere el resultado.
otra cosa es que estoy en un sistema de 64 bits (aquy no ahy diferencia), ya probe usando las librerias de 32 bits (linux32) y las de 64 (linux64), y no hubo
2) y acaso los dual cores funcionan aquy?
R: muy buena pregunta lo único que eh descubierto es que trabajan algo distinto a windows, en el cual mi CPU se quedaba al tope (100% en un CPU) y el otro estaba en modo zombie (sin hacer nada).
en linux pasa esto:
En windows esto no pasa o por lo menos yo no lo eh visto. en Linux, tal vez pase por la configuración del kernel, por el momento no lo se, necesitaríamos hacer mas pruebas con otros CPU's
3) Oye pero el CPUz me da mas información?
Tecnicamente si. pero es información que cualquier usuario debería saber sobre su computadora y si no la sabes apaga tu CPU y con lápiz y papel en mano anota lo que encuentres dentro.
4)Entonces dame los datos del hardware que necesito sobre tus optys o no lo sabes?
R: CPU: Opteron 1212, MHZ = 2000, bus 400, multi x5, Step = F3, VCore = 1.26
Motherboard: ASUS M2N-SLI Deluxe AM2
Ram: OCZ Gold 2 x 1 Gb Timing 5-5-5-12.
Cooling = Aire, ventilador y Heatsink de Stock.
5) Ohh, pero por que tu ventilador esta a 5300 RPM si es de Stock?
R: Al ser un procesador de Servidor este esta muy grande, y ah llegado hasta los 7000 RPM cuando hace mucho calor.
6) Ehy, el Super pi me da los valores en segundos y yo los quiero como los de windows!:
R: Okay, Okay, te doy un regalito pues:
------------------------Empieza el codigo -----------------------------------------
#include 
using namespace std;
main()
{
      cout << "Gusy's Time calculator\n";         double seg, segundos;         int horas, minutos;         cout << "Introduce el tiempo total en segundos: ";         cin >> seg;
      horas = (seg/3600);
      minutos = (seg/60);
      segundos = (seg - (horas * 3600 + minutos * 60));
      cout << "\n" <<>
Conste que tu lo compilas, ahh por cierto te va dar este warning [ warning: converting to ‘int’ from ‘double’ ]; si, es necesario para que funcione bien, no lo modifiques. Por cierto esta en C++ por si no lo notaste, XP.
R: mmm... Que te diré?, Claro que si!!!!, por un tiempo de maso menos 8 segundos. y si los opterones apestan para super pi, pero estoy seguro de que corre este opteron corre mejor que cualquier X2 4200 (que es su equivalente).
P.D. si mi sistema esta declockeado, es lo de default y así seguirá por un ratito mas.