Measuring Disk Usage In Linux (iowait vs IOPS) 18. Februar 2011 auf Linux Dies geschah mir bei der Betrachtung unserer Hadoop Server heute, viele unserer Devs verwenden IOWait als Indikator für IO Performance, aber es gibt bessere Maßnahmen. IOWait ist eine CPU-Metrik, die den Prozentsatz der Zeit misst, in der die CPU im Leerlauf ist, aber darauf wartet, dass ein IO abgeschlossen ist. Merkwürdig - es ist möglich, gesundes System mit fast 100 iowait zu haben, oder einen Scheiben-Engpass mit 0 iowait haben. Eine viel bessere Metrik ist, die Disk IO direkt zu betrachten und du willst die IOPS (IO Operations Per Second) finden. In linux Ich mag die iostat Befehl, obwohl es ein paar Möglichkeiten, um die Info zu bekommen. In debianubuntu ist es im sysstat-Paket (dh: sudo apt-get install sysstat) iostat 1 erfrischt jedes Jahr, wenn du es über einen längeren Zeitraum machst, wird es die Ergebnisse durchschnittlich. Tps ist was du interessierst, Transaktionen pro Sekunde (dh IOPS). - x gibt eine detailliertere Ausgabe und trennen Sie liest und schreibt und lassen Sie wissen, wie viel Daten in und aus pro Sekunde geht. Was ist eine gute oder schlechte Nummer aber wie bei den meisten Metriken, wenn das erste Mal, wenn Sie es sehen, ist, wenn Sie in Schwierigkeiten sind dann itrsquos weniger hilfreich. Sie sollten eine Vorstellung davon haben, wie viel IO Sie normalerweise tun, dann, wenn Sie Probleme erleben und tun 10x das oder nur bekommen 110 von den Festplatten dann haben Sie eine gute Kandidaten Erklärung für sie. Wie viel kann ich von meinem Speicher erwarten? Es hängt davon ab, wie schnell die Scheiben sich drehen und wieviele es gibt. Als Faustregel nehme ich für eine einzelne Scheibe an: 7.2k RPM - gt 100 IOPS 10k RPM - gt 150 IOPS 15k RPM - gt 200 IOPS Unsere Hadoop-Server drängten etwa 70 IOPS auf jede Scheibe auf Peak und sie sind 7,2k So steht es im Einklang mit dieser Schätzung. Sehen Sie hier für eine Panne, warum diese sind gute Schätzungen für zufällige IOs von einer einzigen Festplatte. Interessanterweise kommt eine große Menge davon aus der Latenz der Plattenspinnerei, weshalb SSDs so gut für zufällige IO (im Vergleich zu einer 15k-Diskette, siehe auch: Ein konkretes Beispiel für eine schnellere CPU, die höhere Iowait verursacht, während tatsächlich mehr Transaktionen hier Lesen Sie mehr Beiträge dieses Autors. Diesen Artikel weiterempfehlen Laufen Jede ausführbare Datei als ein Windows-Service (Ruby Sinatra) Während der Migration einer automatisierten VM-Bereitstellungsseite mit einer Kombination von Sinatra auf Linux und Bash-Skripten mit der Rubrik Ruby On Windows - Forking andere Prozesse Während der Bewegung unserer VM-Deployment-Site in Sinatra geschrieben auf eine Windows-Maschine mit dem VMware PowerCLI Toolkit installhellipLetzte Nachrichten Die nächsten 50 Programmiersprachen Die folgende Liste der Sprachen bezeichnet 51 bis 100. Da die Unterschiede relativ klein sind, werden die Programmiersprachen nur in alphabetischer Reihenfolge aufgelistet (Visuell) FoxPro, ABC, ActionScript, APL, AutoLISP, Bc, Bourne Shell, C Shell, CFML, CG, CL (OS400), Clipper, Gemeinsame Lisp, Kristall, Eiffel, Elixier, Elm, Emacs Lisp, Faktor, Forth Hack, Icon, IDL, Informieren, Io, J, Julia, Korn Shell, Kotlin, Maple, ML, NATURAL, NXT-G, OCaml, OpenCL, OpenEdge ABL, Oz, PLI, PowerShell, reine Daten, REXX, S, SmallTalk, SPARK, SPSS, Standard ML, Stata, Tcl, VBScript, Verilog Dieser Monthaposs ändert sich im Index In diesem Monat wurden folgende Änderungen an der Definition des Index vorgenommen: ClojureScript wurde zum Clojure-Eintrag hinzugefügt. Das war ein Vorschlag von Alex Miller. Olaf Buddenhagen und einige andere fragten sich, warum Nim noch nicht Teil des TIOBE-Index war. In der Tat qualifiziert sich Nim für den Index. Es tritt der TIOBE-Index an Position 129 in diesem Monat ein. Neben Lua wird auch LuaJIT als Eintrag für Lua akzeptiert. Das ist dank Szbnwer. Schließlich schlug Mahmoud Fayed vor, die Programmiersprache des Ranges dem Index hinzuzufügen. Diese Sprache hat ihr Debüt auf Platz 104 gemacht. Es gibt viele Mails, die noch verarbeitet werden müssen. Sobald es mehr Zeit gibt, wird Ihre Mail beantwortet. Bitte haben Sie Geduld. Sehr langjährige Geschichte Um das größere Bild zu sehen, finden Sie unten die Positionen der Top 10 Programmiersprachen von vielen Jahren zurück. Bitte beachten Sie, dass es sich um durchschnittliche Positionen für einen Zeitraum von 12 Monaten handelt. Bugs amp Change Requests Dies ist die Top 5 der am meisten angeforderten Änderungen und Bugs. Wenn Sie irgendwelche Vorschläge haben, wie Sie den Index verbessern können donapost zögern, eine E-Mail an tpcitiobe zu senden. Abgesehen von quotltlanguagegt Programmierung, auch andere Abfragen wie z. B. Programmierung mit ltlanguagegtquot, quotltlanguagegt developmentquot und quotltlanguagegt codingquot sollte ausprobiert werden. Fügen Sie Abfragen für andere natürliche Sprachen hinzu (abgesehen von Englisch). Die Idee ist, mit der chinesischen Suchmaschine Baidu zu beginnen. Dies wurde teilweise umgesetzt und wird in den nächsten Monaten abgeschlossen sein. Fügen Sie eine Liste aller abgelehnten Suchbegriffe hinzu. Dies ist, um die Anzahl der wiederkehrenden Mails über Rails, JQuery, JSP, etc. zu minimieren. Starten Sie einen TIOBE-Index für Datenbanken, Software-Konfigurations-Management-Systeme und Anwendungs-Frameworks. Einige Suchmaschinen erlauben die Abfrage von Seiten, die im letzten Jahr hinzugefügt wurden. Der TIOBE-Index sollte nur die zuletzt hinzugefügten Seiten verfolgen. Häufig gestellte Fragen (FAQ) Q: Bin ich erlaubt, den TIOBE-Index in meiner Weblog-Präsentation zu zeigen A: Ja, die einzige Bedingung bezieht sich auf seine ursprüngliche Quelle quottiobequot. F: Wie kann ich eine neue Sprache benennen, die dem TIOBE-Index A hinzugefügt werden soll: Wenn eine Sprache die Kriterien erfüllt, die aufgeführt sind (dh es ist Turing komplett und hat einen eigenen Wikipedia-Eintrag, der anzeigt, dass es sich um eine Programmiersprache handelt) und es Ist genügend populär (mehr als 5.000 Hits für quotltlanguagegt Programmierung für Google), dann schreiben Sie bitte eine E-Mail an tpcitiobe. F: Ich hätte gern den kompletten Datensatz des TIOBE-Index. Ist das möglich A: Wir haben viel Mühe gemacht, um alle Daten zu erhalten und den TIOBE-Index auf dem neuesten Stand zu halten. Um dies zu kompensieren, bitten wir um eine Gebühr von 5.000 US für den kompletten Datensatz. Der Datensatz läuft von Juni 2001 bis heute. Es begann mit 25 Sprachen im Jahr 2001 und misst jetzt mehr als 150 Sprachen einmal im Monat. Die Daten sind im Komma getrennt verfügbar. Bitte kontaktieren Sie salestiobe für weitere Informationen. F: Warum ist das Maximum, um das Ranking für eine Gruppierung zu berechnen, warum nicht die Summe A: Nun, du kannst es entweder so machen und beide sind falsch Wenn du die Summe nimmst, dann bekommst du die Kreuzung zweimal. Wenn Sie die max nehmen, dann vermissen Sie den Unterschied. Welches zu wählen Angenommen, jemand kommt mit einem neuen Suchbegriff, der 10 des Originals ist. Wenn du das Maximum nimmst, ändert sich nichts. Wenn Sie die Summe nehmen, dann werden die Bewertungen steigen 10. So wird die Summe ein Anreiz für einige zu kommen mit allen Arten von obskuren Begriffe für eine Sprache. Thataposs warum wir uns entschieden haben, die max. Der richtige Weg, dies zu lösen, ist natürlich, die Summe zu nehmen und die Kreuzung zu subtrahieren. Dies führt zu einer Explosion von zusätzlichen Abfragen, die durchgeführt werden müssen. Angenommen, eine Sprache hat eine Gruppierung von 15 Begriffen, dann müssen Sie 32.768 Abfragen durchführen (alle Kombinationen von Kreuzungen). So scheint das auch nicht möglich zu sein. Wenn jemand eine Lösung dafür hat, lass es uns wissen. F: Was ist mit Java im April 2004 passiert Haben Sie Ihre Methodik geändert A: Nein, wir haben unsere Methodik zu diesem Zeitpunkt nicht verändert. Google hat seine Methodik geändert. Sie führten eine allgemeine Sweep-Aktion, um loszuwerden, alle Arten von Websites, die nach oben geschoben worden war. Infolgedessen gab es einen riesigen Tropfen für Sprachen wie Java und C. Um solche Schwankungen in der Zukunft zu minimieren, haben wir zwei weitere Suchmaschinen (MSN und Yahoo) einige Monate nach diesem Vorfall hinzugefügt. F: Warum wird YouTube als Suchmaschine für den TIOBE-Index verwendet A: Zuerst zählt YouTube für weniger als 10 aller Ratings, so dass es kaum Einfluss auf den Index hat. YouTube wurde als Experiment hinzugefügt. Es qualifizierte sich für den TIOBE-Index wegen seiner hohen Rangliste auf Alexa. YouTube ist eine junge Plattform (also ein Indikator für die Popularität) und es gibt einige Vorlesungen, Präsentationen, Programmiertipps und Spracheinführungen auf YouTube. TIOBE überprüft mehr als 586 Millionen Zeilen Software-Code für seine Kunden weltweit, Echtzeit, jeden Tag. Finden Punkte innerhalb einer Distanz von LatitudeLongitude mit Bounding Coordinates Dieser Artikel beschreibt, wie man effizient abfragen eine Datenbank für Orte, die innerhalb einer bestimmten Entfernung sind Von einem Punkt, der in sphärischen Koordinaten (Breiten - und Längengrad) angegeben ist. Die Methode berechnet die Begrenzungskoordinaten, die für einen Datenbankindex-Scan ndash verwendet werden können, genau wie wir minimale Rechtecke verwenden würden, um Abfragen im kartesischen Raum zu beschleunigen. Es ist genau für kurze Strecken sowie für lange Distanzen und arbeitet für jede geographische Lage, auch wenn es in der Nähe einer Pole oder der 180. Meridian ist. 1 Abstand zwischen zwei gegebenen Punkten Der kürzeste Abstand (die geodätische) zwischen zwei gegebenen Punkten P 1 (lat. 1 1) und P 2 (lat 2. Lon 2) auf der Oberfläche einer Kugel mit dem Radius R ist der große Kreisabstand . Es kann nach der Formel berechnet werden: Der Abstand zwischen der Freiheitsstatue bei (40,6892deg, -74.0444deg) (0,7102 rad. -1.2923 rad) und dem Eiffelturm bei (48.8583deg, 2.2945deg) (0.8527 rad , 0,0400 rad) ndash unter der Annahme einer sphärischen Näherung a der Figur der Erde mit Radius R 6371 km ndash ist: dist arccos (sin (0.7102) middot sin (0.8527) cos (0.7102) middot cos (0.8527) middot cos (-1.2923 - 0,0400)) middot 6371 km 5837 km (2) 2 Finden von Orten innerhalb einer Distanz ohne Verwendung eines Index Angenommen, wir wollen Orte in einer Entfernung d 1000 km von M (lat. Lon) (1.3963 rad, -0.6981 rad) in Eine Datenbank. Angesichts der Tatsache, dass wir einen Tisch namens Orte mit Spalten Lat und Lon haben, die die Koordinaten im Bogenmaß halten (die trigonometrischen Funktionen von SQL erwarten Radiant), dann könnten wir diese SQL-Abfrage verwenden: SELECT FROM Orte WHERE acos (sin (1.3963) sin (Lat (Lon - (-0.6981))) 6371 lt 1000 Das Problem mit dieser Abfrage ist, dass unser Datenbanksystem nicht in der Lage ist, Indizes auf den Lat - und Lon-Spalten zu verwenden, wegen der Komplexität von Die Formel in der WHERE-Klausel. 3 Finden von Orten innerhalb einer Distanz mit einem Index Um Indizes auf den Lat - und Lon-Spalten zu verwenden, können wir eine Methode verwenden, die der beschränkenden Rechteckmethode im kartesischen Raum ähnlich ist. Letrsquos nennt den Kreis, der von allen Punkten gebildet wird, die den Abstand d von M den Abfragekreis haben. In den folgenden Unterabschnitten wird erläutert, wie die Begrenzungskoordinaten (lat min. Lon min) und (lat max lon max), die gegenüberliegenden Ecken eines umgrenzenden Rechtecks (auf der Sphäre) liegen, die den Abfragekreis vollständig enthält, erläutern. Punkte außerhalb dieses Rechtecks liegen also definitiv nicht im Abstand d von M. Um also Punkte zu finden, die sich innerhalb des Abfragekreises befinden, müssen wir die Punkte nur innerhalb des Begrenzungsrechtecks berücksichtigen. Diese Punkte (Kandidatenplätze) können schnell mit einem Index gefunden werden (siehe Abschnitt 3.5 für SQL-Abfragen). Letrsquos definieren r d R (1000 km) (6371 km) 0,1570 als Winkelradius des Abfragekreises. 3.1 Berechnen des minimalen und maximalen Breitengrades Umzug auf einen Kreis mit Radius R 6371 km von einem Punkt A zu einem Punkt B, so dass es einen Winkel r 0,1570 zwischen A und B bedeutet, der einen Abstand von d 1000 km abdeckt. Meridiane sind auf so großen Kreisen mit Radius R. Daher können wir einen Meridian bewegen, dh die Längendauer festhalten und einfach von der Rippe subtrahieren, um die minimale Breite aller Punkte innerhalb des Abfragekreises mit dem Zentrum M (lat. Lon) zu erhalten (1.3963 rad, -0.6981 rad) : Beachten Sie, dass besondere Vorsicht geboten ist, wenn sich ein Pol innerhalb des Abfragekreises befindet. Siehe Abschnitt 3.4 für Details. 3.2 Berechnen der minimalen und maximalen Länge ndash der falschen Weg Ein Ansatz, der auf mehreren Webseiten für die Berechnung der minimalen und maximalen Längengrade gesehen wird, hält die Breitengrade fest und verändert die Länge, d. h. sich entlang eines Kreises der Breite. Dieser Abschnitt wird zeigen, dass dieser Ansatz ungenaue Ergebnisse liefert. Bewegen entlang eines Kreis von Breitengrad bedeutet, sich auf einem kleinen Kreis zu bewegen. Ein Kreis von Breitengrad in der Breite lat 1.3963 rad hat den Radius R s R middot cos (lat) 1106 km, also d 1000 km entspricht nun einem Winkelradius von r s d R s d (R middot cos (lat)) 0,9039. Wenn man d 1000 km auf einem Kreis von Breitengrad abnimmt, bekommst du Längengrad LSONEME (R middot cos (lat)) -0.6981 rad plusmn 0.9039 rad. Aber das ist nicht die minimale maximale Länge, die man erreichen kann, indem man d 1000 km in irgendeine Richtung bewegt. Das ist, weil wir den Abstand auf einem kleinen Kreis bewegt haben, aber kleine Kreisabstände sind größer als große Kreisabstände. Obwohl M (lat. Lon) (1.3963 rad, -0.6981 rad) und PS (lat. Lon S) (1.3963 rad, -1.6020 rad) einen Abstand von d 1000 km auf dem kleinen Kreis haben, konnten wir eine Abkürzung von M nehmen Zu PS auf einem großen Kreis. Nach Gleichung 1. hat diese Verknüpfung eine Länge von 967 km. So konnten wir noch 33 km bewegen und würden noch im Abfragekreis sein. Insbesondere konnten wir noch kleinere bzw. größere Längen erreichen. Also mit lon plusmn d (R middot cos (lat)) als Begrenzung Werte für Längengrad würde vermissen einige Orte, die tatsächlich innerhalb der Entfernung d sind. Zum Beispiel liegt der Punkt P 3 (1.4618 rad, -1.6021 rad) außerhalb des berechneten Grenzwertes ldquoboxrdquo, obwohl sein Abstand zu M nur 872 km beträgt. Das ist ein Fehler von mehr als 12 3.3 Berechnen der minimalen und maximalen Längengrad ndash der korrekte Weg Abbildung 1: Tangentenmeridiane zum Abfragekreis 1 Bewegen eines Kreislaufs, um die minimale und maximale Länge zu finden, funktioniert überhaupt nicht Sie sehen in Abbildung 1. Die Punkte auf dem Abfragekreis mit der minimalen maximalen Länge, T 1 und T 2. Sind nicht auf dem gleichen Kreis von Breitengrad wie M aber näher an der Stange. Die Formeln für die Koordinaten dieser Punkte finden sich in einem guten Mathe-Handbuch wie 1. Sie sind: Beachten Sie, dass besondere Vorsicht geboten werden muss, wenn der 180. Meridian innerhalb des Abfragekreises liegt. Siehe Abschnitt 3.4 für Details. 3.4 Umgang mit Polen und dem 180. Meridian Wenn lat max. Wie in Abschnitt 3.1 definiert. Ist größer als pi2, dann befindet sich der Nordpol innerhalb des Abfragekreises, was bedeutet, dass auch Teile aller Meridiane innerhalb des Abfragekreises sind. So sind in diesem Fall die Grenzkoordinaten (latmin. - pi) und (pi2, pi). Wenn lat min kleiner als - pi2 ist, dann befindet sich der Südpol innerhalb des Abfragekreises und die Grenzkoordinaten sind (-pi2, - pi) und (lat max pi). Wenn einer von lon minmax. Wie in Abschnitt 3.3 definiert. Außerhalb des gültigen Längengrades - pi, pi liegt der 180. Meridian innerhalb des Abfragekreises. In diesem Fall könnte man (lat min - pi) und (lat max pi) als die Begrenzungskoordinaten verwenden, d. h. etwas mit einer Form wie ein Gürtel um die Kugel. Aber das würde viele Kandidaten Orte, die nicht tatsächlich in der Ferne gehören. Alternativ könnte man zwei gebundene ldquoboxesrdquo verwenden und es genügt für einen Kandidatenplatz in einem von ihnen zu sein. Wenn lonmin lt - pi, sind die beiden Sätze von Bounding-Koordinaten (lat min. Lon min 2pi), (lat max pi) und (lat min - pi), (lat max lon max). Wenn lon max pi, sind die beiden Sätze von Bounding-Koordinaten (lat min. Lon min), (lat max pi) und (lat min - pi), (lat max lon max - 2pi). 3.5 SQL-Abfragen Nachdem wir die Bounding-Koordinaten (lat min. Lon min) (1.2393 rad, -1.8184 rad) und (lat max. Lon max) (1.5532 rad, 0.4221 rad) berechnet haben, können wir sie in einer SQL-Abfrage verwenden . Im Folgenden wird davon ausgegangen, dass Breiten - und Längengrad ndash sowohl im Bogenmaß ndash in zwei getrennten Spalten mit einem Index gespeichert sind, der Streckenabfragen (z. B. einen B-Baum) auf jedem von ihnen unterstützt. Wenn Ihr Datenbankmanagementsystem einen Punktdatentyp und einen räumlichen Index (z. B. einen R-Baum) auf solchen Spalten unterstützt, können Sie das auch verwenden. Es gibt verschiedene Möglichkeiten, den Filter mit den Begrenzungskoordinaten mit der Formel für den großen Kreisabstand in einer SQL-Anweisung zu kombinieren: Einfache Kombination der Bedingungen mit AND: Die meisten Abfrage-Optimierer sind schlau genug, um einen Index-Scan durchzuführen, um schnell Orte zu finden, die befriedigen (Lat Gt 1.2393 UND Lat lt 1.5532) UND (Lon gt -1.8184 UND Lon lt 0.4221) und bewerten die Formel für den großen Kreisabstand für jedes übrige Kandidatenergebnis nur. Der Vorfilter in der WHERE-Klausel und die spezifischere Formel in einer HAVING-Klausel: Der Vorfilter in einer Unterabfrage: 4 Java Source Code 4.1 Die GeoLocation Klasse Im Folgenden finden Sie eine gebrauchsfertige Java GeoLocation Klasse. Die boundingCoordinates () - Methode berechnet die Bounding-Koordinaten anhand der in Abschnitt 3 erläuterten Methode. Abschnitt 4.2 zeigt eine Beispielnutzung der GeoLocation-Klasse. 4.2 Verwenden der GeoLocation-Klasse Hier ist ein Demo-Code, der zeigt, wie die GeoLocation-Klasse aus Abschnitt 4.1 verwendet wird, um eine Datenbank für Orte innerhalb einer bestimmten Distanz abzufragen. 5 Implementierungen in anderen Programmiersprachen Manche Leute haben den Java-Code aus Abschnitt 4 in andere Programmiersprachen übersetzt und ihre Ergebnisse veröffentlicht. Es gibt Implementierungen in C. Clojure. JavaScript (Node. js). Ziel c. PHP Python und Swift. Beachten Sie, dass ich diese nicht auf Richtigkeit überprüft habe. Der maximale Fehler, der sich aus der Verwendung eines sphärischen Erdmodells für Distanzberechnungen ergibt, beträgt nicht mehr als 0,5. 2 Referenzen Zusätzliche Schlüsselwörter: Geo-Bereich, Geo-Bereich, Geo-Position, Geographische Lage, Geographische Lage, Geographische Lage, Geographische Lage, Geografische Lage, Geographische Lage, Geographische Lage, Geographische Lage, Geographische Lage, Geographische Lage, Geographische Lage, Kreis, GPS, geographisches Informationssystem (GIS), Neigung, Azimut, schnelle Suche Erstveröffentlichung am 16. Mai 2010, zuletzt aktualisiert am 5. Juni 2016 Wenn Sie Kommentare oder Vorschläge zur Verbesserung dieses Artikels haben, senden Sie mir bitte eine E-Mail.
No comments:
Post a Comment