Dies ist keine Kodierungsfrage. Dies ist eine Frage, die sich aus Neugier für mein persönliches Projekt ergibt.
Ich habe einen einfachen serverseitigen Web-Server, der über das Netzwerk mit einer begrenzten Anzahl von Clients verbunden werden kann. (Nehmen wir an, dass die maximale Anzahl von 10 zu einem bestimmten Zeitpunkt erreicht ist. Die Last auf der Server-Seite wird niemals zunehmen.) Jetzt soll die Anwendung einige Dateien auf meine Client-Systeme verteilen. Ich kann es entweder auf meinem Desktop oder auf einem XEON-Server hosten. Beide enthalten eine einzige Netzwerkkarte. In beiden Fällen (Desktop / Server) sitzt der Server im selben Netzwerk. Obwohl die Anzahl der Clients begrenzt ist, die Dateien jedoch sehr groß sein können (in GB), können alle Clients gleichzeitig Anforderungen stellen.
Jetzt muss ich eine Entscheidung treffen, welches Gerät als Server verwendet werden soll. Ich frage mich auch, was alles in Betracht gezogen werden sollte, um die Download-Leistung zu verbessern.
Auf dem Desktop läuft Core I7, 4. Generation. 2 TB Festplatte, 128 GB Flash-Laufwerk, 8 GB RAM Xeo-Server. (Ich werde die Spezifikationen setzen)
Die Datenverarbeitung ist möglicherweise nicht der Hauptflaschenhals. Es wird alles Netzwerk-IO sein. Meine Netzwerkbandbreite kann nicht verbessert werden, da ich im selben Netzwerk sitze. Ich kann Server auswählen, da Compute-Threads mehr sein können. Ich werde auch mehr RAM haben, was garantiert, dass sich die Dateien im Hauptspeicher befinden. Datei-E / A ist im Vergleich zum Desktop schneller, ebenso wie der L1 / L2-Cache. Ich bin der Meinung, dass sich die Netzwerkleistung zwischen Desktop / xeon nicht verbessern wird, da die Netzwerkkarte einen Engpass aufweist. Bitte lassen Sie mich wissen, welche anderen Faktoren eine Wahl weitaus besser als die andere machen würden. (Auf beiden wird Ubuntu 14.04 (Desktop mit Client Edition und xeon mit Server Edition) ausgeführt.)
quelle
Antworten:
Netzwerkausrüstung - Wenn Sie es noch nicht haben, besorgen Sie sich einen Gigabit-Switch mit genügend Anschlüssen für Ihren Router und alle Systeme, die eine Verbindung herstellen. Ihre Systeme sollten bereits über Gigabit verfügen. Wenn sie nicht die $ 15 Dollar runterwerfen und ein Paar bekommen. Sie sind nicht unangemessen teuer.
Verwenden Sie als Dateiserver das XEON-System, insbesondere wenn es sich bei dem RAM um ECC (Error Correcting Code) handelt. Die i7-Serie kann ECC nicht verwenden, und ECC ist hervorragend geeignet, um Ihre Daten am Leben zu erhalten (d. H. Keine unbeaufsichtigten Beschädigungen im Zusammenhang mit dem RAM). Sie werden immer mit stiller Korruption kämpfen. Warum komplizieren Sie die Angelegenheit?
Da Sie Ubuntu Server 14.04 verwenden, müssen Sie entscheiden, welche Rollen es spielen soll. Ich schlage vor, SSH zu verwenden, um mit dem Server zu kommunizieren. Wenn der Server über IPMI (Intelligent Platform Management Interface) verfügt, schlagen Sie es nach, wenn Sie es nicht wissen. Nehmen Sie den Monitor ab und führen Sie ihn ohne Kopf aus. Ich schlage vor, einen passphrasengeschützten SSH-Schlüssel darauf zu platzieren, damit der Server sicherer ist. Lesen Sie dazu -> https://askubuntu.com/questions/2271/how-to-harden-an-ssh-server
Nachdem Sie den Server gehärtet haben, sollten Sie wahrscheinlich Samba für die Dateikommunikation verwenden. Sie können NFS (Network File System) verwenden, da Sie nur Linux-Computer verwenden. Es ist jedoch besser, sich an Samba zu gewöhnen, wenn Sie ein gemischtes Netzwerk verwenden möchten. Dies ist, was ich am Ende von /etc/samba/smb.conf benutze
Sie müssen sich nur für ein Partitionsformat entscheiden. Viel kann und wird schief gehen. Aus Ihren Angaben geht hervor, dass Sie ein einzelnes Laufwerk haben, das der normale Startplatz ist. Ich schlage vor, EXT4 zu verwenden, da es ursprünglich für Linux ist. Andere empfehlen EXT3 und ehrlich gesagt, beide funktionieren einwandfrei für Ihre Zwecke. Wenn Sie mehr als ein Laufwerk verwenden und den Speicherplatz in einem einzigen Bereitstellungspunkt zusammenfassen möchten, haben Sie einige Optionen. BTRFS hat Raid-Äquivalent 0,1,5,6, wobei 5 und 6 experimentell sind. Es gibt auch das bewährte mdadm, das einfach einzurichten ist und Ihnen Software-Raid bietet. Sie können auch die pragmatis-Route einschlagen und so etwas wie AUFS (Another Unified File System) oder MHDDFS (Multi-Hard Drive Disk File System) verwenden. Ich bevorzuge MHDDFS, da es einfach und benutzerfreundlich ist und Sie es nicht in den Kernel kompilieren müssen. Es gibt auch Mergerfs, obwohl ich es nicht so oft benutzt habe. Wenn Sie den pragmatischen Weg gehen, empfehle ich, Snapraid zu verwenden, um die Parität für die Laufwerke aufrechtzuerhalten. Sie müssen einmal im Monat 10% der ältesten Daten bereinigen, um eine stille Datenbeschädigung zu vermeiden.
Da Sie nur ein Laufwerk haben, können Sie nichts wirklich gegen die Laufwerksgeschwindigkeit tun, außer schnellere Laufwerke zu kaufen. Ein 4-TB-WD-Green-Laufwerk mit WDIDLE-Einstellung auf unendlich läuft über Gigabit-Geschwindigkeiten in meinem Netzwerk, sodass ich nur die Laufwerke gepoolt und Snapraid verwendet habe, um meine Daten sicher zu halten.
Es kann sich auch lohnen, sich einen DNS zu besorgen und eine eigene Cloud oder einen FTP-Server einzurichten. Sie können Ihre eigene E-Mail hosten, aber die Einrichtung ist mühsam. Sie sollten auch eine rsync-Sicherung zusammenstellen, da RAID keine Sicherung ist. Die Liste geht weiter und weiter.
Ich hoffe, ich habe ein wenig Licht auf das Problem geworfen. Wie immer viel lesen. Linux ist ein nützliches Betriebssystem, aber die Dokumentation ist allgegenwärtig. Überprüfen Sie immer das Datum auf dem Artikel, um zu vermeiden, dass zehn Seiten nicht mehr aktuelles Material gelesen werden.
quelle