Tarhon-Onu Victor wrote:
On Tue, 17 Jan 2006, Tarhon-Onu Victor wrote:
pornesti un ghiavol numit irqbalance care se ocupa el de facut
calculele si impartit irq-urile pe cpu-uri astfel incit sa fie cit
mai egal distribuite.
Sau, daca vrei sa faci asta ad-labam, vezi
/proc/irq/irqNum/snmp_affinity si apoi citeste
/usr/src/linux-VersiuneaTa/Documentation/IRQ-affinity.txt, iti spune
acolo despre masca de biti prin care poti distribui o intrerupere pe o
multime formata din m CPU-uri (dintr-un total de n, m e din [1, n]).
In principiu mai exista si un program (in user-mode) cu care puteai
modifica cpu affinity si pentru fiecare proces in parte, dar ultima oara
cand l-am incercat eu dadea kernelul cu printk-uri in mine. Functioneaza
la fel ca irq-affinity.
calcule matematice pe multi biti, multe si complicate, etc etc).
Pentru tot felul de trasnai pe care i le poti spune lui gcc pentru
a optimiza cod... man gcc. Daca ai un distro rpm based atunci in
.rpmrc-ul din home-ul userului cu care builduiesti rpm-uri poti scrie
ceva de genul:
optflags: athlon -O2 -g -march=athlon -m3dnow -fomit-frame-pointer
-fforce-addr -fforce-mem -maccumulate-outgoing-args -finline-limit=2048
optflags: i686 -O2 -g -march=pentium4 -msse2 -mfpmath=sse
-fomit-frame-pointer -fforce-addr -fforce-mem
-maccumulate-outgoing-args -finline-limit=2048
optflags: x86_64 -O2 -g -march=athlon64 -m3dnow -mfpmath=sse
-m128bit-long-double -fomit-frame-pointer -fforce-addr -fforce-mem
-maccumulate-outgoing-args -finline-limit=2048
Ma rog, asa ar arata scrise in .rpmrc, daca folosesti alt sistem
de pachete sau pur si simplu le compilezi ad-minam atunci arunca
optiunile cu pricina intr-un CFLAGS si respectiv CXXFLAGS (in env sau
makefile-uri).
In functie de nevoile matale poti sa mai arunci si o privire pe la
kernel preempt, disk io schedullers (deadline, cfq, anticipatory) si
sa vezi care ti s-ar potrivi.
_______________________________________________
RLUG mailing list
RLUG@lists.lug.ro
http://lists.lug.ro/mailman/listinfo/rlug