Ich führe ein Skript aus, das große Dateien lädt. Ich habe das gleiche Skript in einem einzigen OpenSuSe-Server und Quad-Core-PC ausgeführt. Wie in meinem PC erwartet, ist es viel schneller als auf dem Server. Aber das Skript verlangsamt den Server und macht es unmöglich, etwas anderes zu tun.Warum ist die System-CPU-Zeit (% sy) hoch?
Mein Skript ist
for 100 iterations
Load saved data (about 10 mb)
Zeit myscript (PC)
real 0m52.564s
user 0m51.768s
sys 0m0.524s
Zeit myscript (in Server)
real 32m32.810s
user 4m37.677s
sys 12m51.524s
Ich frage mich, warum "sys" ist so hoch, wenn Ich führe den Code im Server aus. Ich habe den Befehl top verwendet, um die Speicher- und CPU-Auslastung zu überprüfen. Es scheint, dass es noch freien Speicher gibt, also ist das Austauschen nicht der Grund. % sy ist so hoch, es ist wahrscheinlich der Grund für die Geschwindigkeit des Servers, aber ich weiß nicht, was% sy so hoch verursacht. Der Prozess, der den höchsten Prozentsatz der CPU (99%) verwendet, ist "myscript". % wa ist im Screenshot Null, aber manchmal wird es sehr hoch (50%).
Wenn das Skript ausgeführt wird, durchschnittliche Belastung ist größer als 1, aber noch nie als 2.
ich meine Scheibe auch so hoch gesehen geprüft:
strt:~ # hdparm -tT /dev/sda
/dev/sda:
Timing cached reads: 16480 MB in 2.00 seconds = 8247.94 MB/sec
Timing buffered disk reads: 20 MB in 3.44 seconds = 5.81 MB/sec
[email protected]:~> df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 245G 102G 131G 44%/
udev 4.0G 152K 4.0G 1% /dev
tmpfs 4.0G 76K 4.0G 1% /dev/shm
ich diese Dinge überprüft haben, aber Ich bin mir immer noch nicht sicher, was das eigentliche Problem in meinem Server ist und wie es zu beheben ist. Kann jemand einen wahrscheinlichen Grund für die Langsamkeit identifizieren? Was könnte die Lösung sein? Oder sollte ich noch etwas überprüfen?
Danke!
Was "Problem"? Wenn Sie das System bitten, viel zu arbeiten, wird es ziemlich beschäftigt sein, bis es fertig ist. Bei einem typischen Skript wird fast die gesamte "Arbeit" in untergeordneten Prozessen (oder Kernraumaufgaben in ihrem Namen, wie E/A) stattfinden, nicht im Shell-Prozess, der das Skript interpretiert. –
Wenn das Skript ausgeführt wird, erhalten andere Benutzer auf dem Server eine langsame Antwort. Ich möchte das Skript schneller ausführen und andere Benutzer nicht stören. Wenn das Hinzufügen einiger Ressourcen eine Lösung ist, könnte ich das tun. Aber ich weiß nicht, was helfen könnte. – Abhishek
Wenn Sie fragen, welche Art von System zu kaufen/Upgrades für eine bessere Leistung zu machen, das ist wahrscheinlich eine Superuser Frage.Wenn Sie versuchen wollen, die Aufgabe selbst effizienter zu machen (die zusammengeschusterten Lösungen können viel Raum für Verbesserungen haben), müssen Sie viel genauer darüber sein, was es tut und wie - tatsächlicher Code oder zumindest eine enge funktionale Beschreibung. –