[linux-l] Schlechte Fileserver Performance

Stephan A. Schier Stephan.Schier at dai-labor.de
Sa Jan 22 16:04:29 CET 2005


Jan-Benedict Glaw schrieb:
> On Sat, 2005-01-22 01:15:47 +0100, Stephan A. Schier <Stephan.Schier at dai-labor.de>
> wrote in message <41F19B33.5000408 at dai-labor.de>:
> 
>>Jan-Benedict Glaw schrieb:
>>
>>>On Fri, 2005-01-21 20:03:00 +0100, Stephan A. Schier 
>>><Stephan.Schier at dai-labor.de>
>>>wrote in message <41F151E4.2070600 at dai-labor.de>:
>>>
>>>>Hat irgentwer Vorschläge oder Tips wo man mit der Optimierung anfangen 
>>>>könnte? Mir fällt langsam nichts mehr ein.
>>>
>>>
>>>Fang' doch erstmal mit den offensichtlichen Dingen an. Bevor Du Fragen
>>>zu Lösungen stellst, solltest Du erstmal sagen, was denn so *wirklich*
>>>am Laufen ist:
>>
>>Okay, ich wusste erstmal nicht welche Parameter wirklich 
>>relevat/interessant sind.
> 
> 
> Alle.
> 
> 
>>>- Kernel-Version. (Debian-Kernel oder selbstgebaut? 4GB-Unterstützung
>>> auch wirklich vorhanden?)
>>>
>>
>>derzeit noch ein 2.4.26 mit acl-Patches, bigmem ist an, es werden auch die 
>>4GB erkannt.
> 
> 
> gerade Highmem-Konfigurationen laufen mit 2.6.x besser; das VM-Subsystem
> geht sinnvoller mit den Highmem-Pages um und kopiert nicht soviel Daten
> hin und her...
> 

Ich hatte erst einen 2.6.x Kernel zu laufen, aber als die ersten User anfingen 
darauf zu arbeiten, hatte ich des öffteren Kernel-Panics, was nicht wirklich 
gut für die Uptime war. So bin ich dann zurück zu 2.4 gegangen. Ich hab letzte 
Nacht auch mal auf den aktuellen 2.4.29 upgedatet.


> 
>>>- Was für Netzwerkkarten? Exakter Typ und benutzter Treiber wären
>>> interessant... Wie werden die betrieben? Interrupt-Betrieb oder NAPI?
>>
>>Intel E1000, Interrupt, mit Gigabit Link (hängt an einem Cisco 3750).
> 
> 
> Welche davon? PCI-IDs und Revision-Nummer wären interessant...
> 
> Wenn Du real > 100MBit durch die Karte schiebst, solltest Du auf NAPI
> umsatteln; das verringert die Interrupt-Last. (Sinn macht das aber nur,
> wenn Du die teureren Karten mit größeren Buffern im Einsatz hast.)
> 

Intel Corp. 82546EB Gigabit Ethernet Controller (Copper) (rev 01)
8086:1010 (rev 01)

Ist onboard in der Maschine (Sun V65x).

> 
>>>- Wie ist das U320 RAID Array angebunden? Was für ein SCSI-Controller?
>>> Welcher Treiber?
>>
>>Adaptec AIC-7902 U320 (onboard auf der Sun V65x)
>>Treiber: aic79xx
>>
>>
>>>- Was für ein Dateisystem wird auf den Partitionen des Arrays benutzt?
>>> Welche Optionen wurden gegeben, falls denn?
>>
>>ext3 (mit ACL)
>>
>>
>>>- Wie groß sind die Dateisysteme (in MB, inodes, Anzahl Dateien und
>>> Verteilung der Größe der Dateien)?
>>
>>Partition1 187739MB, 24428544 inodes
>>Partition2 375487MB, 48840704 inodes
>>Partition3 191995MB, 24969216 inodes
>>
>>wie bekommt man die Anzahl der Dateien ohne grossen aufwand raus? Und die 
>>Verteilung der Größe?
> 
> 
> df -i
> 
> Die Größe kannst Du auch schätzen; es geht nur um ungefähre Werte.
> ext[23] reagiert z.B. nicht allzu gut, wenn Du große Mengen von Dateien
> in einzelnen Verzeichnissen hast und dann getdents machst...
> 
Partition1 1355638 (Benutze inodes)
Partition2  730295 (Benutze inodes)
Partition3  187499 (Benutze inodes)

Die Dateien sind im allgemeine über viele Verzeichnisse verteilt. Partition1 
enthält dabei User-Home Directories, Partition2 primär Project-Verzeichnisse 
und Partition3 Backups.


> 
>>>- Was für ein NFS-Server findet Verwendung?
>>
>>nfs-kernel-server 1.0.6-3.1 (standard Debian Package)
>>
>>
>>>- Wie ist der Workload, wenn's so langsam wird? Sind in den
>>> Verzeichnissen tausende von Dateien?
>>
>>Die Verzögerung beim Anzeigen der Dateien ist unabhängig von der Anzahl 
>>der Dateien, kommt auch bei leeren Verzeichen vor.
>>
>>load average: 0.04, 0.04, 0.01
>>
>>
>>>- Sind eventuell irgendwelche Logging- oder Debug-Optionen
>>> eingeschaltet, sodaß selbst beim Lesen die Schreib-Performance (für
>>> die Log-Daten) das Nadelöhr ist?
>>
>>Maximal das ext3 Journal, Logfiles sind schon sehr weit runtergedreht.
> 
> 
> Das Journal ist kann eine echte Spaßbremse sein; falls die atime nicht
> wichtig ist, kannst Du die FS auch mit der Option "noatime" mounten. In
> dem Fall wird etwas weniger beim Lesen auf die Platte geschrieben...

Okay guter Tipp. Werde ich mal probieren.

> 
> 
>>>- Bei Samba: sind socket options gesetzt?
>>
>>socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=16192 
>>SO_SNDBUF=1619
> 
> 
> So ein kleiner Sendbuffer? ...oder nur'n Tippfehler?

Hat beim kopieren wohl die letzte 2 verschluckt sollte SO_SNDBUF=16192 heissen.
> 
> 
>>Ach ja die Verzögerung bei anzeigen des Verzeichnisinhalt hab ich auch auf 
>>der Maschine direkt (da blos nicht so häufig). Deshalb gehe ich auch von 
>>einem lokalen (und nicht Netzwerk) Problem aus.
> 
> 
> Gefühlsmäßig hatte ich bei den Adaptec-Controllern schon immer das
> Gefühl, daß die manchmal "langsam" sind. Könnte natürlich auch das
> externe RAID-Chassis sein. (Was ist das eigentlich für ein Modell? Was
> für Platten sind da drin?)

Das Raid ist ein Sun StorEdge 3310 (mit RAID-Controller und 512MB RAM).

Mit 12x74GB SCSI Platten (Seagate, 10000 U/min).

> 
> 
>>Nach einem Reboot der Maschine ist auch alles wieder schön flott, bis der 
>>Speicher wieder mit der Cache voll ist, dann wirds wieder langsam.
> 
> 
> Hört sich an, als ob der 2.4.x'er immer schon Daten zwischen <1GB und
>  >1GB hin- und herkopiert. Wenn das der Fall ist, kannst Du mal mit den
> 2.6.x'ern testen, oder mir einfach den überflüssigen RAM schenken :-)
> 
Ich wollte eigentlich erst auch den 2.6er nehmen hatte aber wie gesagt 
Stabilitätsprobleme unter Last.


Gruß,
Stephan



Mehr Informationen über die Mailingliste linux-l