Newsgroup: it.comp.os.dibattiti
Titolo: Slowlaris

Sto utilizzando in sti giorni per la prima volta Solaris 10. Domanda ai più
esperti e navigati:
è normale che un script di configure che su un Dual Xeon 3GHZ con Linux ci
metta circa 10 secondi a completarsi e che su una T2000 quadri-CPU e 8 core
a 1GHz con Solaris 10 ci metta più di due minuti? Lo script in questione è
il configure di sysbench-0.4.5
O è solo una maniera stupida di giudicare la velocità di un sistema? (userei
il benchmark ma non riesco a compilarlo in Solaris...)
-- 
Vide

 Sto utilizzando in sti giorni per la prima volta Solaris 10.
solaris x86, giusto?
gcc in entrambi i casi entrambi?
p.s.: (qui lo dico e qui lo nego) tempo fa sostenevo che i sistemi
cosidetti "altamente scalabili", in realta' sono tali perche' vanno
male su hardware scadente :) In altre parole, Linux forse scala peggio
perche' va gia' bene su un hardware povero, quindi c'e' ben poco da
scalare.
-- 
Massimiliano

 gcc in entrambi i casi entrambi?
Il configure è pre-compilatore...cmq ho utilizzato il cc di Sun Studio 11 in
Solaris 
-- 
Vide


si ok l'intera suite
premesso che:
1) non cono un programmatore C.
2) come hai gia' detto tu questo test e' forse un test un po' del
menga.
il configure e' un semplice script o invoca talvolta il make?
-- 
Massimiliano.


The optimist thinks this is the best of all possible worlds.
The pessimist fears it is true.      [J. Robert Oppenheimer]

 il configure di sysbench-0.4.5
Non oso fare il "saputo", ma non è che per caso stai eseguendo il tutto 
in una zone con limitazioni sul tempo di CPU?
-- 
  (\_/)   |   \    \  | ___|_   |_   |   /\/\  ianezz a casa sua... :-)
  (^.^)   |  _ \  | \ | _|     /    /   {^.^ } Verba volant, scripta
/(")(") _|_/  _\_|  _|____|____|____| (")(")\ manent, data corrupted

 
beh, insomma ritrovarsi su una zona, completamente all'insaputa di
esserlo mi sembra poco plausibile, tranne che qualcuno gli abbia dato il
login di una macchina che lui non conosce.
-- 
Massimiliano

 login di una macchina che lui non conosce.
Questo è effettivamente il caso, visto che la Sun ci ha dato accesso su un
paio di macchine (questo Niagara e una Sparc) per fare prove per un
possibile acquisto. Il punto è che dobbiamo fare test di performance e mi
pare stupido che ci diano accesso solo a una zona con limite sulla CPU, no?
-- 
Vide
"Si es verdad que existe un Dios, que trabaje de sol a sol." (Mago de Oz)
NP: Nulla

 sicuro).
Che non sfrutti tutte le CPU lo immaginavo, il punto è la differenza
disarmante fra il Niagara e lo Xeon con Linux...siamo sull'ordine del 20-25
volte più lento! 15 secondi contro 5 minuti!


Vide ha scritto:

Guarda è assolutamente normale.
Non ti aspettare di veder compilare (o qualsiasi altra attività più o 
meno sequenziale) più velocemente su una macchina "grossa" che non su un 
  server in architettura PC.
Per mia esperienza le architetture server "serie" tipo sparc con solaris 
  o ppc con aix performano meglio di un server intel (con linux, bsd o 
altro) solo con dei workload "seri" e fortemente "paralleli".
Per quanti benchmarck abbia provato nessuno sembra in grado di 
riprodurre delle condizioni "reali".
Per esempio ho notato che le macchine sparc quando ci sono molti 
processi sul server (diciamo qualche migliaio) e un numero di context 
switch elevato danno il meglio, cosi' come vanno meglio i pseries in 
queste condizioni.
Giusto per fare un esempio, questa e' una macchina dual Xeon "alla frutta":
vmstat 1
procs -----------memory---------- ---swap-- -----io---- --system-- 
----cpu----
  r  b   swpd   free   buff  cache   si   so    bi    bo   in    cs us 
sy id wa
  1  0      0  10604      0 2853552    0    0     5    15   25     0 47 
11 34  8
  2  0      0  19948      0 2834648    0    0   168   110 1605  1838 30 
  9 59  1
  8  0      0  11632      0 2834852    0    0    80   626 1689  1457 47 
11 41  2
  1  1      0  14112      0 2814452    0    0    84   282 1608  2297 38 
  9 23 29
  3  0      0  32712      0 2814792    0    0   336    96 2084  1665 45 
11 32 12
Questo è un pseries 2cpu in "passeggiata di salute":
kthr     memory             page              faults        cpu
----- ----------- ------------------------ ------------ -----------
  r  b   avm   fre  re  pi  po  fr   sr  cy  in   sy  cs us sy id wa
  0  3 44590   125   0   0   0 145  137   0 382  214  37 10 20  4 66
  0  3 44590   123   0   0   7 607  712   0 1335 12646 4471  6  8  0 86
  1  2 44590   125   0   0   5 567  962   0 1407 3166 3259  1  0  0 99
  0  3 44590   124   0   0  12 700 1710   0 1553 3033 3448  0  5  0 95
  0  5 44590   124   0   0   1 482  850   0 1111 44382 12124 22 34  0 44
Notare la combinazione cs/us/sy  le due macchine gestiscono un workload 
simile ma la seconda e' molto meno potente (sulla carta) ma ancora 
spazio per altro workload, la prima "e' arrivata".
Giusto per cronoca si tratta di server per "Mass Hosting" sia sulla 
prima che sulla seconda ci gira apache e php come cgi e servono cadauna 
c.a. 20.000 siti per c.a. 30Mbps di banda, tutte e due prendono risorse 
I/O da una SAN (notare il diverso wa: per la macchina intel il bound e' 
la cpu, per la ppc e' l'I/O.
Ovviamente se provo il bechmark la prima macchina (l'Intel) e' una 
specie di freccia del sud mentre la seconda e' da buttare nel secchio :-)

 specie di freccia del sud mentre la seconda e' da buttare nel secchio :-)
Mmmh..interessante. La macchina dovrebbe fare da server MySQL. L'attuale
Dual Xeon quando arriva a 1000 query/Sec è un po' al limite e visto che
vorremmo prendere un altro server da affiancargli, stavamo guardando un po'
in giro. Facendo un po' di test con query Mysql sul Niagara (120
connessioni contemporanee sparando in maniera sequenziale 3 milioni di
query ciascuna) ho visto che la Sun arriva tranquillamente a macinare 3000
e passa query/Sec rimanendo il 50% in idle, però volevo anche dare
un'occhiata con benchmark "standard" come Sysbench e qui invece sembra non
valere la pena visto il costo (dovrebbe essere sui 15mila euro). Ammetto la
mia poca esperienza in benchmark specie su multiprocessore, per cui stavo
cercando delucidazioni...



Mysql e' un "oggetto interessante" dal punto di vista delle performance; 
in linea teorica con Sun Niagara "potenzialmente" potrebbe andare molto 
molto meglio ma devi lavorare molto di tuning sia sull'os che sul mysql.
Intanto ti consiglio di studiare nel dettaglio l'installazione attuale 
su xeon sia dal punto di vista dello status del mysql sia da quello 
dell'OS (cos'è linux ?) e individuare i boundary attuali.
Il modello di elaborazione a thread paralleli dei core di Niagara e la 
gestione dei thread di Solaris (infinitamente più efficiente 
dell'equivalente su Xeon e Linux) dovrebbe aiutarti molto ma escludo che 
un'installazione "scratch" di default ti possa funzionare bene.
Documentati un po e buon divertimento, per fornirti uno "spunto" ti dico 
che io su una macchina HS20 (blade IBM dual Xeon) con linux non andavo 
oltre le 1000 q/sec (eseguite in maniera decente); su JS20 (blade IBM 
dual PPC) con un po di pazienza (giocando anche con il cpu affinity in 
modo da lasciare una cpu sempre e solo per il mysql e puntando sul 
context switch più veloce dei PPC e sul tempo di slice molto più 
piccolo) sono arrivato a 3000 q/sec in condizioni di responsività e di 
carico simili a quelli dello Xeon, ho fatto solo qualche test con AIX 
(sempre per il fatto che i thread in linux sono mooooolto lenti) ma 
potrebbe ancora andare meglio.

 volte più lento! 15 secondi contro 5 minuti!
20-25 volte piu' lento... quindi e' chiaro che qualche cosa che non va
nei tuoi "benchmark".
Installa gcc ed GNU make e fai la prova in quel modo... poi si potrebbe
discutere dell'efficienza dei binari compilati con gcc su sparc, ma
questa e' un'altra questione ancora.
-- 
Massimiliano

 questa e' un'altra questione ancora.
E' solo il configure, l'ho detto sin dall'inizio che non è nulla di
minimamente affidabile, solo che mi stupisce questa "lentezza" in Solaris. 


 volte piů lento! 15 secondi contro 5 minuti!
Non v'e` dubbio, ma usa gli stessi tool su tutte le piattaforme per far 
benchmarking senno` hai risultati un po' falsati.
Comunque suppongo (non ho un solaris con la tua configurazione sotto 
mano, tutti abbandonati) che in realta` tu stia usando una singola CPU: 
autoconf/automake e` molto molto stupido (oltre che lento), fa un main 
e lo linka sulla libreria che vuole trovare, nulla di piu`. Su un P4ht 
a 3 ghz con 4 gb di ram con linux e` una scheggia al confronto del p650 
con 8 processori power G4+ a 1.4 ghz e 16 gb di ram con aix. Ma in 
realta` stai facendo un confronto con una cpu a 3 ghz con una a 1.4 per 
essere precisi, non c'e` da sorprendersi. Compila qualcosa con 
xlc/OpenMP e vedrai la differenza :)
