Normale Ansicht

Received before yesterday

AMDGPU: FreeSync-Support künftig direkt im Linux-Kernel

28. Dezember 2018 um 13:43

Künftig wird Linux von Haus aus FreeSync unterstützen. Der dafür nötige Treiber-Code wurde in den Hauptzweig des Linux-Kernels aufgenommen. AMD FreeSync sorgt für die Gleichschaltung der Bildraten von Radeon-Grafikkarten und kompatiblen Monitoren, was ein Bildzerreißen (Tearing) und Stottern in Spielen verhindert bzw. minimiert.

Retro-Shooter: Dusk schießt auch auf Mac, Linux und Konsolen [Notiz]

03. Januar 2019 um 18:19

Der erfolgreiche Retro-Shooter Dusk wird für macOS, Linux und Spielkonsolen portiert. Außerdem soll eine DRM-freie Version angeboten werden. Das bei Steam „äußert positiv“ bewertete Spiel bedient sich frei bei Genre-Vertretern der 1990er Jahre, angefangen von Doom über Quake bis hin zu Redneck Rampage.

Notebook: Dell bietet neues XPS 13 (9380) in 16 Varianten ab 1.100 € an

24. Januar 2019 um 13:12

Zwei Wochen nach der Vorstellung zur CES bietet Dell das neue XPS 13 (9380) über seinen Online-Shop an. Das Notebook steht in 16 Varianten zur Auswahl, die sich hinsichtlich Bildschirm, Prozessor, Arbeitsspeicher, SSD und Betriebssystem unterscheiden. Die Preise reichen von derzeit 1.100 Euro bis hoch zu 2.700 Euro.

Tuxedo XUX508 und XUX708: Linux-Notebooks auch für Spieler mit Core i9-9900K

25. Januar 2019 um 08:33

Die leistungsfähigen Notebooks der XUX-Serie mit wechselbaren Prozessoren aus Intels Desktop-Portfolio erhalten bei Tuxedo ein Upgrade auf Coffee Lake (Refresh). Das XUX508 und das XUX708 mit 15,6 Zoll respektive 17,3 Zoll Display können ab sofort in der teuersten Ausbaustufe mit dem Acht-Kerner Core i9-9900K geordert werden.

Linux Gaming: Valves Proton überschreitet Steam-Grenze

26. Januar 2019 um 10:49

Valve hat der Laufzeitumgebung Proton zwei wesentliche neue Funktionen spendiert. Sie kann nun mit Spielen außerhalb des Steam-Clients genutzt werden und lässt sich darüber hinaus auch dann einsetzen, wenn ein Spiel in einer nativen Linux-Version vorliegt. Bislang konnte Proton bei vorhandenem Port nicht eingesetzt werden.

Thunderclap: Lücke in Thunderbolt klafft in Windows, Linux und macOS

27. Februar 2019 um 14:45

Wissenschaftler haben auf dem „Network and Distributed System Security Symposium“ (NDSS 2019) in San Diego ihre Erkenntnisse zu Schwachstellen der Thunderbolt-Schnittstelle veröffentlicht, die sowohl Windows, Linux als auch macOS angreifbar machen. Sie fassen diese im Fachartikel unter dem Begriff „Thunderclap“ zusammen (PDF).

Experiment: Homeserver/NAS im Eigenbau – Das eBook

Von:Niko
30. September 2018 um 09:00
eBook Beitragsbild

Meine Artikelreihen zum Bau eines eigenen Homeservers gehören zu den mit Abstand beliebtesten Artikeln auf diesem Blog. Allerdings gehören sie auch zu den Artikeln, für die ich mit Abstand am meisten Zeit investieren musste.

Zuerst hatte ich eine Übersicht aufgestellt, welche Anforderungen der Homeserver erfüllen soll. Dann wurde verschiedene Software getestet die ich für eine einsteigerfreundliche Tutorialreihe geeignet halte. Beispielsweise nutze ich für meine eigenen Server Borgbackup, Duplicity oder schlicht Rsync zum erstellen von Backups. Für diese Tutorialreihe habe ich mir mehrere Tools angeschaut und mich dann für Rsnapshots entschieden, da dieses einfach zu konfigurieren ist und Dateien einfach wiederhergestellt werden können, da diese als Kopien vorliegen und nicht in einem speziellen Format verpackt sind.

Nun liegt es mir fern mich zu beklagen. Ich betreibe diese Seite mit großer Begeisterung. Aber ich habe für diese Tutorialreihe doch einige Wochenenden vor dem Rechner verbracht und als alles fertig war war ich doch ziemlich erleichtert. Dass die Reihe dann so gut ankommt und schon viele positive Kommentare geschrieben wurden freut mich natürlich unglaublich.

Was mich ebenfalls sehr freut ist, dass regelmäßig Leute über die Partnerlinks im Artikel Hardware auf Amazon gekauft haben. Und auch wenn manche es verwerflich finden oder bestreiten würden, es ist ebenfalls sehr motivierend wenn ich am Wochenende sagen kann: “Dieses Bier wurde mir von techgrube.de ausgegeben”

Daher habe ich mich nun an ein Experiment gewagt. Ich habe die aktuelle Artikelreihe Homeserver/NAS mit Ubuntu 18.04 genommen, die Texte etwas überarbeitet, alles schön formatiert und um einige Kapitel ergänzt. Die zusätzlichen Kapitel beschäftigen sich vor allem damit was zu tun ist, wenn eine Festplatte ausfällt oder Daten verloren gehen. Daraus wurde ein eBook im PDF- und EPUB-Format was für einen geringen Betrag verkauft wird.

Es ist der Versuch zwei Fliegen mit einer Klappe zu schlagen. Einerseits mich zu motivieren, auch zukünftig Artikelreihen zu schreiben die sich nicht an einem Abend erstellen lassen, sondern viele Tage in Anspruch nehmen. Gleichzeitig sollen interessierte Leserinnen und Leser mit einem Kauf nicht nur dieses Projekt unterstützen (wie mit einer Spende), sondern auch einen Mehrwert zu den Artikeln hier im Blog erhalten.

Inspiriert haben mich hier verschiedene Podcastprojekte die grundsätzlich frei und kostenlos verfügbar sind. Wer das Projekt mit einer Spende oder Kauf unterstützt, bekommt Zugriff auf eine verlängerte Version mit Pre- und Postshow, oder den Livestream. Ein Modell das ich immer sehr fair fand und dementsprechend auch hoffe dass es für alle Seiten funktioniert.

Natürlich werden auch hier einzelne verärgert sein, ich hoffe jedoch dass das Experiment im großen und ganzen auf Interesse und Akzeptanz stößt und es mir zukünftig evtl. sogar ermöglicht meine Aktivitäten auf diesem und anderen Blogs zu verstärken.

Die Details zum eBook findet ihr auf Homeserver/NAS im Eigenbau – Das eBook.

Experiment: Homeserver/NAS im Eigenbau – Das eBook ist ein Beitrag von techgrube.de.

“Matrix”-Code im Terminal erzeugen mit CMatrix

Von:Niko
30. September 2018 um 09:04
CMatrix Beitragsbild

Auch wenn der Film “Matrix” mittlerweile fast 20 Jahre alt ist, ist es immer noch der Film der mich bis heute am meisten fasziniert hat. Dementsprechend gefreut habe ich mich, als ich neulich über das Programm cmatrix gestolpert bin.

Cmatrix erzeugt im Terminal den “Matrix”-Code der im Film häufig über die Bildschirme flimmert und den Code der virtuellen Realität der Matrix darstellt. Aufgrund der Komplexität des Codes, bzw. der Matrix können die Bildwandler des Schiffs den Code nicht in Bilder umwandeln, so dass dieser nur als laufender Buchstabensalat durch die Bildschirme läuft.

Aufgrund der immensen Bedeutung von CMatrix 🙂 befindet sich dieses in den Paketquellen von Ubuntu und lässt sich mit einem einfachen “sudo apt install cmatrix” installieren. Alternativ findet man das Projekt auch auf Github.

Mit dem Befehl cmatrix lässt sich das Programm starten, und muss mit Strg+c wieder beendet werden. Alternativ kann man CMatrix mit cmatrix -s im Screensaver-mode starten. Dann beendet sich das Programm von selbst beim Druck auf eine beliebige Taste.

Während das Programm läuft, lässt sich über die Ziffertasten 0-9 die Laufgeschwindigkeit des Codes verändern. Mit der Taste b werden zufällige Zeichen hell erleuchtet. Drückt man die Taste B (Shift+b) leuchten alle Zeichen. Mit n wird das Glühen der Zeichen wieder deaktiviert.

Auch die Färbung lässt sich ändern mit den Zeichen ! @ # $ % ^ & . Die Zeichen stehen dabei für folgende Farben: ! für rot, @ für Matrix-grün, # für gelb, $ für blau, % magenta, ^ cyan, & für weiß.

Wie kann man CMatrix nun sinnvoll einsetzen? Da kam mir spontan ein Youtube-Tutorial aus dem Jahre 2011 in den Sinn, und zwar How to be a Computer Hacker von protutorialsYT. In diesem Video wird in fünf Minuten erklärt, wie man zu einem Computer-Hacker wird. Natürlich inklusive Begründung. Schließlich haben alle Respekt vor Hackern und die Leute im Internet hören darauf was Hacker sagen.

Hätte der Macher dieses Tutorials cmatrix zur Verfügung gehabt, ich bin mir sicher er hätte es eingesetzt.

CMatrix


 

“Matrix”-Code im Terminal erzeugen mit CMatrix ist ein Beitrag von techgrube.de.

Windows Partitionen unter Linux ignorieren

Von:Niko
14. Oktober 2018 um 12:51
Linux Mint Partition ignorieren Beitragsbild

Auf meinem Desktop habe ich sowohl Linux, als auch Windows installiert. Zwar ist Linux seit vielen Jahren mein Hauptsystem, beim zocken führt für mich aber leider nach wie vor kein Weg an Windows vorbei.

Da ich Windows fast ausschließlich zum spielen verwende und somit keine Daten zwischen der Linux- und der Windowsinstallation austauschen muss, stört es mich dass die Windowspartitionen im Dateimanager unter Linuxmint angezeigt werden. Zugegeben kein großes Problem, aber mich stört es. Abgesehen davon dass einem ständig vor Augen geführt wird dass auf dem Rechner auch eine Windowsinstallation existiert, erhöht es auch die Gefahr versehentlich Dateien auf der Windowspartition zu löschen, oder die Installation versehentlich zu zerstören.

Schön, dass mit einer udev-Regel der Kernel angewiesen werden kann bestimmte Partitionen zu ignorieren. Das schöne an dieser Lösung ist, dass sie Distributionsübergreifend und unabhängig vom verwendeten Dateimanager funktionierten sollte.

Zuerst muss unter /etc/udev/rules.d eine neue Datei mit der Endung .rules angelegt werden. Beispielsweise /etc/udev/rules.d/hiddendevices.rules

In meinem Fall soll /dev/sdf4 ausgeblendet, bzw. ignoriert werden. Dafür wird die soeben angelegte Datei mit folgendem Inhalt befüllt.

KERNEL=="sda4", ENV{UDISKS_IGNORE}="1"

Nach einem Neustart ist die Windowspartition auf dem Dateimanager verschwunden.

Ignore Partition vorher/nachher


 

Windows Partitionen unter Linux ignorieren ist ein Beitrag von techgrube.de.

htop – laufende Prozesse und Systemressourcen im Blick

Von:Niko
12. November 2018 um 12:57
Htop Beitragsbild

Vor einiger Zeit habe ich mich im Artikel TOP – Ein Standardprogramm zum Anzeigen von Prozessen und Systemresourcen mit dem Ressourcenmonitor und Prozessmanager top auseinandergesetzt. Da top in der Regel standardmäßig vorinstalliert ist, schadet es nicht sich damit ein bisschen auseinander zu setzen.

Genau wie ich werden die meisten von euch wahrscheinlich eher htop einsetzen. Htop lässt sich mit seiner ncurses-Oberfläche konfortabler bedienen und ist außerdem grafisch ansprechender und übersichtlicher gestaltet. Ein guter Grund sich also auch mit htop etwas genauer zu beschäftigen.

Nach dem Aufruf zeigt einem htop eine Ansicht die standardmäßig etwa so aussieht.

Htop Übersicht

Der Aufbau ist dreigeteilt. Im oberen Bereich findet sich eine Übersicht über die Auslastung des Systems sowie einige Daten zur Anzahl der laufenden Prozesse, der Uptime und der Load average. Der mittlere Bereich besteht aus einer Liste mit Prozessen. Der untere Bereich eine Übersicht der Shortcuts, mit denen sich htop bedienen lässt.

Auf einem Desktopsystem mit Mausunterstützung lassen sich die einzelnen Menüpunkte auch mit der Maus aufrufen.

Bereich 1: Die Systemauslastung

Htop Bereich 1

1 – Die Auslastung der Prozessorkerne.

Hier wird die Anzahl der Prozessorkerne angezeigt. Bei einem Prozessor mit Hyperthreading verdoppelt sich die hier angezeigte Anzahl der Kerne gegenüber den physisch vorhandenen Kernen. Der Auslastungsbalken ist farbig unterteilt und hat folgende Bedeutung.

Htop Farben CPU Bar

  • Blau: Auslastung durch Prozesse mit niedriger Priorität
  • Grün: Auslastung durch Prozesse mit normaler Priorität
  • Rot: Auslastung durch den Kernel des Betriebssystems
  • Türkis: Auslastung durch Virtualisierung/Steal Time. Hierbei handelt es sich um Zeit, in der eine virtuelle CPU darauf wartet dass der Hypervisor ihr Zeit auf der richtigen CPU einräumt.

2 – Auslastung von RAM und Swap

Mem steht für den RAM des Systems. Die Farben haben hier folgende Bedeutung.

Htop Farben Memory

  • Used zeigt den von Programmen belegten Hauptspeicher an.
  • In buffers/cache werden Informationen vorgehalten die schon einmal vom System berechnet und verwendet wurden. Sollten die selben Informationen erneut benötigt werden müssen sie nicht neu berechnet werden sondern können aus dem Buffer gelesen werden. Wenn genug Speicher zur Verfügung steht dient dies der Beschleunigung des Systems. Wenn der Speicherplatz knapp wird kann der Buffer/Cache geleert werden und der Speicherplatz steht anderen Programmen zur Verfügung.

Swp zeigt die Auslastung des Auslagerungsspeichers an.

Htop Farben Swap Bar

Die Farbgebung ist hier einfach. Rot = belegt. Mehr gibt es nicht.

3 – Tasks

  • 46 (die erste Zahl) gibt die Anzahl der gestarteten Prozesse an.
  • 98 thr zeigt die Anzahl der Threads, also Ausführungsstränge, die zu den 46 Prozessen gehören.
  • 1 running ist die Anzahl der Prozesse die gerade Daten verarbeiten, oder in der Warteschlange stehen um Daten zu verarbeiten.

4 – Load Average

load average: 0,02, 0,05, 0,00 gibt die Load Average  für die letzte Minute, die letzten 5 Minuten und die letzten 15 Minuten an. Load Average gibt die durchschnittliche Systemlast an und darf nicht mit der Prozessorauslastung verwechselt werden. Sie kann eher mit einer Warteschlange für Aufgaben verglichen werden, die vom Prozessor abgearbeitet werden müssen. So kann evtl. die Prozessorauslastung sehr niedrig sein, die Load Average jedoch sehr hoch weil die Festplatte ausgelastet ist und nicht in der Lage ist die angeforderten Daten schnell genug zu liefern. Bei einer Load Average von null stehen alle Systemresourcen zur Verfügung. Steigt die Auslastung des Systems, dann steigt auch die Load Average an, wobei es nach oben keine Grenze gibt. Bis zu welchem Wert ein System zuverlässig arbeitet ist abhängig von den Systemresourcen, insbesondere davon wie stark die CPU ausgelastet ist und wie schnell die Festplatte die angeforderten Daten liefern kann.

5 – Uptime

Gibt an wie lange das System bereits läuft. In diesem Fall 9 Tage, 17 Stunden, 7 Minuten und 34 Sekunden.

Bereich 2 – Die Prozesse

Htop Bereich 2 die Prozesse

Der mittlere Bereich listet alle aktiven Prozesse auf und zeigt an welche Systemressourcen diese belegen. Standardmäßig ist die Liste nach CPU-Nutzung sortiert. Die Sortierung kann jedoch angepasst werden. Bei einem System mit Mausunterstützung kann man einfach auf den gewünschten Punkt in der grünen Leiste klicken. Also beispielsweise MEM% um nach Speicherverbrauch zu sortieren. Auf einem System ohne Maus kann die Sortierung über die Taste F6 erfolgen.

Die einzelnen Spalten geben folgende Informationen aus.

  • PID: Die Prozess-ID
  • USER: Der Name des Benutzers der den Prozess gestartet hat.
  • PRI: Die Prozesspriorität wie sie vom Kernel gesehen wird. Standardwert ist 20.
  • NI: Nice Wert zur Anpassung der Priorität durch den User. Der Nice Wert reicht von 19 (niedrige Priorität) bis -20 (hohe Priorität).
  • VIRT: Virtueller Speicher enthält allen Code, Daten und Shared-Libraries, Seiten (Speicher Blöcke) die ausgelagert wurden, sowie Seiten für die eine Nutzung geplant wurde, die derzeit aber noch nicht genutzt werden. VIRT ist somit sehr viel höher als der tatsächlich genutzte Arbeitsspeicher.
  • RES: (resident) Anteil der im physischen Speicher liegt, und nicht ausgelagert wurde. Auch hier kann es zu Überschneidungen kommen, wenn mehrere Programme die gleichen Bibliotheken verwenden. Somit kann auch die Summe von RES höher sein als der tatsächlich belegte Speicher.
  • SHR: (shared) gibt den Speicherplatz an der evtl mit anderen Programmen geteilt wird.
    Der tatsächlich von einem Prozess verwendete Hauptspeicher liegt also irgendwo zwischen RES und RES-SHR, abhängig davon wie viele Prozesse diese gemeinsam genutzten Bibliotheken nutzen.
  • S: Status des Prozesses. Es stehen folgende Status zur Verfügung: ‘D’ = uninterruptible sleep, ‘R’ = running, ‘S’ = sleeping, ‘T’ = traced or stopped, ‘Z’ = zombie.
  • CPU%: Prozentsatz der CPU-Zeit, die gerade von diesem Prozess verwendet wird.
  • MEM%: Prozentsatz des Hauptspeichers den der Prozess belegt. Basierend auf RES.
  • TIME+: Prozessorzeit die der Prozess seit seinem Start genutzt hat in Minuten:Sekunden.Hundertstel Sekunden.
  • Command: Der vollständige Befehl der ausgeführt wird.

Bereich 3 – Tastatur-Shortcuts

Der untere Bereich ist eine Hilfestellung zur Bedienung und Anpassung von htop.

Htop Bereich 3 Keyboard Shortcuts

  • F1 Hilfe: Mit einem Druck auf die F1-Taste öffnet sich eine kurze Hilfeseite von htop. Hier werden vor allem die verschiedenen Tastenkombinationen beschrieben, mit denen htop bedient werden kann.
  • F2 Setup: Htop lässt sich sehr umfangreich Anpassen. Die Anpassungen reichem von der Änderung des Farbschemas, bis hin zum kompletten Neuaufbau der einzelnen Bereiche. So kann beispielsweise im oberen Bereich anstatt der Auslastung der einzelnen CPU-Kerne eine Durchschnittsanzeige eingeblendet werden, oder es kann die aktuelle Uhrzeit oder der Hostname eingeblendet werden.Die Spalten im mittleren Bereich können komplett neu aufgebaut werden. So kann Beispielsweise die Lese- und Schreibrate auf die Datenträger eingeblendet werden. Außerdem lässt sich das Design der Anzeigen verändern.
    Htop AnpassungenHtop Anpassungen
  • F3 Search: Mit F3 kann htop nach Usernamen, Prozessnamen usw. durchsucht werden.
  • F4 Filter: Die Anzeige kann gefiltert werden, so das nicht relevante Prozesse ausgeblendet werden.
  • F5 Tree: Anstatt einer einzelnen Zeile pro Prozess wird ein Prozessbaum angezeigt. Hiermit wird dargestellt welche Prozesse aufeinander aufbauen.
    Htop Prozesstree
  • F6 Sort: Die Anzeige kann nach einzelnen Spalten sortiert werden. Beispielsweise nach CPU-Auslastung, Speicherplatzverbrauch oder I/O.
  • F7 Nice-: Der Nice-Wert kann verringert werden um dem Prozess eine höhere Priorität zu geben (nur Root darf die Prozesspriorität erhöhen)
  • F8 Nice+: Erhöht den Nice-Wert und verringert damit die Prozesspriorität. Dies darf von jedem Nutzer vorgenommen werden.
  • F9 Kill: Zeigt eine Liste mit Signalen die an den Prozess gesendet werden können. Standardmäßig ausgewählt ist SIGTERM zum ordentlichen Beenden von Prozessen.

Schluss

Wer auch nur gelegentlich mit der Kommandozeile von Linux arbeitet kommt früher oder später auch mit htop in Berührung. So ging es natürlich auch mir. Allerdings habe ich mich jahrelang nicht mit dem so häufig eingesetzten Programm befasst. Htop ist schnell aufgerufen und zeigt auf den ersten Blick mit seiner graphischen Darstellung die Systemauslastung an. Dafür habe ich htop genutzt, für mehr nicht.

Wie umfangreich sich htop anpassen lässt und dass sich damit auch Lese- und Schreibzugriffe auf die Datenträger darstellen lassen war mir nicht klar. Hierzu habe ich immer iotop genutzt. Das htop eine Suchfunktion hat war mir zwar bekannt, genutzt habe ich sie aber irgendwie nie. Erst beim schreiben dieses Beitrags habe ich auch mit der Suchfunktion gespielt und entdeckt, wie komfortabel sich htop wirklich bedienen lässt.

Höchst wahrscheinlich werde ich htop in Zukunft noch häufiger einsetzen als bisher.

htop – laufende Prozesse und Systemressourcen im Blick ist ein Beitrag von techgrube.de.

Raspberry Pi Temperatur des Prozessors auslesen

Von:Niko
08. Dezember 2018 um 13:10
Raspberry Pi Temeratur auslesen Beitragsbild

Der SoC des Raspberry Pi kann bei starker Nutzung sehr heiß werden. Wenn man ihn mit dem Finger berührt kann die Temperatur des Chips doch unangenehm hoch werden.

Ich wollte daher wissen wie hoch die Temperatur des Chips tatsächlich ist und habe nach einer einfachen Möglichkeit gesucht die Temperatur auszulesen.

Erfreulicherweise bringt Raspbian bereits ein Tool mit, mit welchem man die Temperatur und viele weitere Daten des Systems auslesen kann. Das Tool hört auf den Namen vcgencmd. Unter https://github.com/nezticle/RaspberryPi-BuildRoot/wiki/VideoCore-Tools findet man unter der Überschrift “vcgencmd Commands “eine schöne Übersicht über die Möglichkeiten die das Tool bietet.

Die Temperatur lässt sich mit folgendem Befehl auslesen.

vcgencmd measure_temp

Raspberry Pi Temperatur auslesen


 

Raspberry Pi Temperatur des Prozessors auslesen ist ein Beitrag von techgrube.de.

Bevölkerungsverteilung interaktiv visualisiert

Von:Niko
26. Dezember 2018 um 12:56
Human Terrain Project Beitragsbild

Mich fasziniert es immer wenn es Menschen gelingt, komplexe Sachverhalte und schwer fassbare Zahlen und Statistiken so zu visualisieren, dass diese nicht nur anschaulich, sondern sogar interessant werden. Ein Projekt aus dieser Kategorie ist das Human Terrain Project von The Pudding. The Pudding beschäftigen sich unter anderem mit Datenjournalismus und versuchen kulturelle Themen in “visuelle Essays” umzusetzen.

Das Human Terrain Project visualisiert die Bevölkerungsverteilung auf dem Globus anhand von 3D-Pyramiden auf einer interaktiven Karte.

Die verwendeten Daten kommen aus dem Global Humen Settlement Projekt, welches von der EU-Kommisson unterstützt wird und sich auf Zahlen aus Volkszählungen, Satellitenbilder und andere Quellen stützt.

Die Karte wird nicht nur statisch dargestellt, es lassen sich auch die aktuellen werte (aus 2015) mit dem Stand von 1990 vergleichen. Hierbei wird im linken Browserbereich der Stand aus 1990 dargestellt, den aktuelle Stand der Weltbevölkerung sieht man im rechten Bereich. Außerdem lassen sich Veränderungen zwischen 1990 und 2015 darstellen, indem Wachstum als grüne Pyramide dargestellt wird, Bevölkerungsschwund als rote Pyramide.

Sehr schön ist auch die Funktion, an verschiedene Stellen der Welt zu “fliegen”. Hierbei zoomt die Karte heraus und bewegt sich langsam zum gewünschten Ziel. Dabei “fliegt” man sozusagen über die mit Bevölkerungspyramiden gespickte Welt und kommt dabei an stacheligen Großstädten vorbei, sowie menschenleeren Wüsten.

Wenn man weit in die Karte hineinzoomt stößt man hin und wieder auf seltsame Bevölkerungsspitzen, die den Anschein erwecken, dass an diesem kleinen Punkt mehr Menschen leben als in einer Großstadt. Leider ist nicht ersichtlich auf welchen Daten eine Pyramide genau basiert. Mir kommt es allerdings so vor, als würde die Darstellung ungenauer, je weiter man in die Karte hineinzoomt. Das macht das Projekt allerdings nicht weniger spannend oder gar uninteressant.

So lässt sich beispielsweise sehr schön erkennen, wie sich das Leben in Frankreich sehr stark auf wenige Großstädte, natürlich insbesondere Paris konzentriert. In Deutschland ist die Bevölkerung dagegen stärker in der Fläche verteilt.

Wen solche Dinge ebenfalls interessieren, der wird mit dem Human Terrain Project einiges an Zeit verbringen können.

Human Terrain Project Deutschland Frankreich


 

Bevölkerungsverteilung interaktiv visualisiert ist ein Beitrag von techgrube.de.

Windows 2000 im Browser ausführen

Von:Niko
12. Januar 2019 um 18:31
Windows 2000 VM im Browser Beitragsbild

Dieser Beitrag hat weder mit Linux, noch mit Open Source zu tun. Da mich eine heute gemachte Entdeckung im Internet aber gleichermaßen fasziniert und Spaß gemacht hat, schreibe ich trotzdem einen kurzen Blogbeitrag.

Es geht um das Ausführen von Windows 2000 im Browser. Entwickler Fabrice Bellard hat einen PC-Emulator in Javascript geschrieben und gleich einige VMs erstellt, die man auf seinem Blog direkt im Browser starten kann. Unter anderem findet sich Windows 2000 darunter.

Windows 2000 gehört zu den weniger erfolgreichen Windowsversionen. Es war auch die letzte, auf dem NT-Kernel basierende Windows, das sich primär an Businesskunden richtete. Der Nachfolger WindowsXP hatte Unternehmen und Privatanwender gleichermaßen als Zielgruppe. Für Privatanwender wie mich war damals Windows 98 angesagt. Da Computerspiele zur damaligen Zeit für die Consumerversionen von Windows entwickelt wurden, führte als Computerspieler damals kein Weg an Windows 98 vorbei. Trotzdem schaute ich immer wieder neidische auf Benutzer der NT-Kernel basierten Windowsversionen. Diese liefen extrem viel stabiler als Windows 98 und seine Vorgänger.

Aus diesem Grund habe ich immer wieder mit Windows NT 4.0 und Windows 2000 experimentiert. Daher fand ich es besonders spannend oben genannte Windows 2000 VM im Browser zu testen. Natürlich ist das System nicht besonders schnell, für eine Runde Minesweeper, oder das Klicken durch Menüs und Einstellungen reicht es allemal. Über diverse Parameter in der URL lassen sich Parameter wie RAM oder Bildschirmauflösung anpassen. Informationen hierzu findet man in der FAQ.

Wer Lust hat ein bisschen in Erinnerungen zu schwelgen, ohne sich zuerst eine richtige VM einzurichten, der hat mit Bellards Windows 2000 im Browser sicher auch seine Freude.

Windows 2000 VM im Browser

Windows 2000 im Browser ausführen ist ein Beitrag von techgrube.de.

Publii: Static CMS mit grafischer Benutzeroberfläche

Von:Niko
19. Januar 2019 um 12:53
Publii Beitragsbild

Static Site Generators haben in letzter Zeit stark an Popularität gewonnen. Aus gutem Grund, denn statische Webseiten bieten eine Menge Vorteile gegenüber dynamisch generierten Websites. Statische Seiten sind schnell, erzeugen kaum Last auf dem Server und bieten eine wesentlich geringere Angriffsfläche als PHP-Projekte wie WordPress.

Durch die Verwendung von Static Site Generatoren wird die Erstellung und Wartung statischer Webseiten einfach und komfortabel, ohne dass man sich mit dem HTML-Code der Seite direkt auseinandersetzen muss. Der größte Vorteil der Generatoren ist jedoch, dass man Änderungen an der kompletten Seite vornehmen kann, ohne dutzende HTML-Dateien einzeln zu bearbeiten. Das übernimmt der Generator für einen.

Üblicherweise werden dafür Projekte wie Hugo oder Jekyll verwendet. Diese haben eines gemeinsam, sie werden komplett auf der Kommandozeile bedient und die Formatierung der Texte wird die Auszeichnungssprache Markdown realisiert.

Das mag für technikaffine Menschen sinn- und reizvoll sein. Wenn man aber eine Lösung für weniger technikinteressierte Menschen sucht, scheiden diese Generatoren aus. Hier bietet sich ein Generator mir grafischer Benutzeroberfläche eher an.

Ein solches Projekt ist Publii. Publii bezeichnet sich als Static CMS und bietet im Gegensatz zu den Static Site Generatoren eine grafische Benutzeroberfläche. Das Programm ist Open Source, der Code liegt auf Github. Fertige Builds gibt es für Windows, MacOS und als .Appimage, .rpm und .deb Pakete für Linux. Diese findet man direkt auf der Projektseite getpublii.com.

Publii Backend

Wofür eignet sich Publii?

Natürlich haben statische Webseiten auch Nachteile. Da der Content nicht live generiert wird, lässt sich beispielsweise kein Shop realisieren. Aber auch eine Kommentarfunktion bieten statische Seiten nicht. Hier muss man sich mit Drittanbietern behelfen und deren Dienste einbinden. Wenn man den Dienst Disqus verwenden möchte, bietet Publii eine Schnittstelle über welche sich Disqus-Kommentare in den Blogbeitrag einbinden lassen. Möchte man aus Datenschutzgründen einen anderen, evtl. selbstgehosteten Dienst nutzen, so muss man selber Hand am Theme anlegen.

Derzeit stehen für Publii acht Themes zur Verfügung. Die Aufmachung der Webseite lässt darauf schließen, dass zukünfig auch kostenpflichtige Themes angeboten werden sollen. Im Gegensatz zu aufwendigen WordPress Themes ist die Gestaltung der Seiten recht eingeschränkt. So sind alle Themes mehr oder weniger auf das darstellen von Blogbeiträgen spezialisiert. Auf der Startseite werden die einzelnen Beiträge nach Veröffentlichungsdatum mit Anreissertext dargestellt.

Es lässt sich zwar verhinder dass bestimmte Artikel auf der Startseite aufgeführt werden, ein Magazinartiges darstellen von bestimmten, nach Kategorien sortierten Beiträgen auf der Startseite ist jedoch nicht möglich.

Aus meiner Sicht eignet sich Publii also besonders zum Erstellen von Blogs, eben mit Einschränkungen bei der Kommentarfunktion, oder Portfolioseiten. Für Magazine oder eine Wissensdatenbank wie ein Wiki ist es (zumindest bisher) weniger geeignet.

Publii: Oberfläche und Funktionen

Der Aufbau der Benutzeroberfläche erinnert ein wenig an das Backend von WordPress. So findet man auf der linken Seite eine Menüleiste, über welche sich neue Posts erstellen, das Theme anpassen oder Einstellungen verändern kann. Außerdem lassen sich verschiedene Autoren anlegen, Tags vergeben und Menüs anlegen.

Wer schon mit WordPress gearbeitet hat, der wird sich im Backend von Publii schnell zurecht finden.

Viele Funktionen die man bei WordPress über Plugins realisieren muss, bringt Publii bereits von Haus aus mit. Fehlt hingegen eine Funktion, so wird es mit dem Nachrüsten natürlich schwierig. Beispielsweise bringt Publii bereits eine Funktion mit um die lästigen Cookie-Bars einzublenden. Obwohl sich natürlich gerade eine statische Seite dazu anbietet ohne Cookies eingesetzt zu werden.

Außerdem werden auf Wunsch AMP-Seiten unterstützt, der HTML- und CSS-Code kann komprimiert (also ohne Kommentare, Formatierung usw.) erzeugt werden. Die angebotenen Themes erzeugen alle responsive Webseiten, so dass die Seite sowohl für Desktop-, als auch für Mobilgeräte geeignet sind.

Über den Reiter “Tools” lassen sich Backups der Webseite erstellen. Außerdem kann eigener HTML- und CSS-Code in die Seite eingefügt werden, ohne dass man die Theme-Dateien direkt bearbeiten muss.

Außerdem gibt es ein experimentelles Tool um Beiträge aus WordPress zu importieren.

Über die Vorschaufunktion lässt sich die Seite rendern und im lokalen Webbrowser darstellen, ohne dass die Änderungen direkt veröffentlicht werden.

Hat man eine Webseite erstellt, kann Publii die HTML-Dateien entweder auf der lokalen Festplatte erzeugen, oder diese direkt auf den eigenen Server oder Webspace laden.

Publii edit Post

Themes binden Google Fonts ein

Mit statischen Seiten lassen sich besonders einfach datenschutzfreundliche Webseiten erstellen. Ohne Kommentarfeld, Kontaktformular, Benutzerlogin usw. werden praktisch keine personenbezogenen Daten verarbeitet.

Daher ist es schade, dass über die Themes Schriftarten von Google Fonts eingebunden werden und damit zumindest die IP-Adresse des Benutzers an Google übermittelt wird. Um dies zu verhindern muss man selbst tätig werden, indem man das Theme anpasst.

Geladen werden die Google Fonts über einen Eintrag in der Header-Datei des Themes. Diese befindet sich unter ~/Dokumente/Publii/themes/THEMENAME/partials/head.hbs

Letzendlich handelt es sich um Textdateien, die man mit einem beliebigen Editor ändern kann. Hier entfernt man die Zeilen

 <link rel="preconnect" href="https://fonts.gstatic.com/" crossorigin>
 
 <link href="https://fonts.googleapis.com/css?family= PT+Serif:400,700|Muli:400,600" rel="stylesheet"> 

Publii bringt standardmäßig acht Themes mit, die bereits im oben genannten Installationsverzeichnis vorliegen. In den Einstellungen der Webseite kann man verschiedene Themes für die gerade bearbeitete Webseite “installieren”. Damit wird das Theme aus oben genanntem Ordner für diese Webseite geladen. Die Anpassung muss daher vor der “Installation” erfolgen.

Damit werden keine Google Fonts mehr geladen, der Browser fällt auf die Standardschriftarten zurück. Möchte man die bisher von Google geladenen Schriftarten vom eigenen Server ausliefern lassen, so hilft einem der google webfonts helper. Damit lassen sich die benötigten Dateien zusammen stellen und der CSS-Code zum laden der Schriftarten erzeugen. Diesen kann man im Backend von Publii über Tools > Custom CSS laden.

Fazit

Ich habe schon länger ein Tool wie Publii gesucht und freue mich endlich etwas gefunden zu haben. Mit Publii lässt sich extrem schnell eine schöne, responsive, schnelle und wartungsarme Webseite erstellen.

Zwar bin ich durchaus ein großer Freund von WordPress, für viele Projekte ist es aber absoluter overkill und verursacht viel Wartungsaufwand. Wenn man eine wartungsarme Webseite erstellen möchte, die eventuell auch nur unregelmäßig aktualisiert wird, ist WordPress völlig ungeeignet. Gerade für Portfolio-Seiten oder Gelegenheitsblogger bietet sich Publii geradezu an.

Durch die grafische Benutzeroberfläche ist Publii außerdem extrem nutzerfreundlich.

Und wenn ich mir überlege wie viele Stunden ich mit der Anpassung dieser WordPress-Installation verbracht habe, damit beispielsweise anonyme Kommentare verfasst werden können, dann fällt das Entfernen der Google Fonts bei Publii nicht wirklich ins Gewicht.

Publii Themes

Publii: Static CMS mit grafischer Benutzeroberfläche ist ein Beitrag von techgrube.de.

Mit Dpigs die Größe von installierten Paketen anzeigen

Von:Niko
19. Februar 2019 um 16:31
dpigs Beitragsbild

Als einen großen Vorteil von Linux-Systemen gegenüber Windows habe ich immer die Paketmanager empfunden. Schnell und einfach lässt sich darüber Software installieren und updaten, ohne auf Downloads von irgendwelchen Webseiten zurückgreifen zu müssen.

Genau so schnell wie man eine Software installieren kann, so schnell kann man auch vergessen dass sie installiert ist. Wenn irgendwann der Speicherplatz knapp wird, kann es interessant sein welche Pakete am meisten Platz auf dem Datenträger verbrauchen.

Speicherplatzverbrauch von installieren Pakete unter Debian/Ubuntu/Mint anzeigen

Die Antwort darauf kann das Kommandozeilentool dpigs aus dem Paket debian-goodies liefern.

Wenn man dpigs ohne zusätzliche Parameter aufruft, werden die zehn Speicherhungrigsten Programme aufgelistet. Der Speicherplatzverbrauch wird in Bytes vor dem Paketnamen angezeigt.

Mit der Option -n kann die Liste verlängert werden. Der Befehl “dpigs -n 20” listet 20 Programme auf.

Um die Ausgabe besser lesbar zu machen, kann man die Option -H verwenden. Damit werden die Speicherplatzangaben in Megabyte und Kilobyte angegeben.

Mit dem Befehl

dpigs -n 30 -H

werden die 30 installierten Pakete aufgelistet, die am meisten Speicherplatz verbrauchen. Die Dateigröße wird dabei im menschenlesbaren Format ausgegeben.

dpigs Ausgabe

Mit Dpigs die Größe von installierten Paketen anzeigen ist ein Beitrag von techgrube.de.

Debtree visualisiert die Abhängigkeit von Paketen

Von:Niko
08. März 2019 um 11:05
Debtree Beitragsbild

Vor vielen Jahren habe ich Windows auf meinem Desktop durch Linux ersetzt und mittlerweile einige Distributionen im Einsatz gehabt. Immer habe ich die schnelle und einfache Installation von Software über die Paketmanager als einen der größten Vorteile gegenüber Windows gesehen. Besonders die Möglichkeit zum Einbinden von Drittquellen fand ich immer toll. Damit war die Möglichkeit geboten, Updates an einer einzigen Stelle (dem Paketmanager) durchzuführen, ohne dass man auf den “Store” der Distribution angewiesen ist.

Ja, die Sicherheitsproblematik bei Drittquellen ist mir bewusst, dieses Problem habe ich aber in noch größerem Maße beim Download von Software über irgendwelche Webseiten. Daher hoffe ich, auch in Zeiten von Flatpaks, Snaps und Appimages, dass uns die Paketmanager noch lange erhalten bleiben.

Sicherlich ist die Aufgabe, die Paketmanager zu bewältigen haben, gewaltig. Programme bringen Abhängigkeiten mit, die wiederum Abhängigkeiten haben, die wiederum…

Bei der Installation zeigen einem die Paketmanager an, welche Software durch Abhängigkeiten zusätzlich zum gewünschten Programm installiert wird. Leider zeigen sie nicht an, welches Paket welche Abhängigkeit auslöst.

Dies kann man sehr schön mit dem Programm debtree visualisieren

Debtree – Installation und Funktion

In der Debian/Ubuntu/Mint-Familie lässt sich debtree direkt aus den Paketquellen installieren. Zusätzlich wird graphviz benötigt, um aus den von debtree erzeugten DOT-Files ein Bild zu erstellen.

sudo apt install debtree graphviz

Anschließend kann die erste Grafik erzeugt werden. Zum testen eignet sich ein Paket, das relativ wenige Abhängigkeiten mitbringt. Beispielsweise nano oder openssl.

$ debtree nano | dot -Tpng > nano.png
Paketlisten werden gelesen… Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen…. Fertig
I: The following dependencies have been excluded from the graph (skipped):
I: libc6

Wie man sieht, hat debtree zuerst die Abhängigkeiten eingelesen, davon allerdings auch welche übersprungen. In diesem Fall die libc6.
Debtree hat in der Datei /etc/debtree/skiplist einige Abhängigkeiten definiert, die standardmäßig ignoriert werden. Es handelt sich dabei um Abhängigkeiten, die so gewöhnlich sind, dass sie in einem Großteil der Grafiken auftauchen würden und diese unnötig aufblasen. Die Liste kann man nach den eigenen Wünschen anpassen.

Mit der Option –no-skip soll sich das Anwenden dieser Liste deaktivieren lassen. Leider hat dies bei mir nicht funktioniert. Das Anwenden von –no-skip hatte keinerlei Auswirkungen. Alternativ kann man die skiplist anpassen, oder mit der Option –show-all alle Abhängigkeiten anzeigen lassen. Diese Möglichkeit hat funktioniert, führt aber bei Paketen mit vielen Abhängigkeiten schnell zu einer riesigen Datei.

Zusätzlich gibt es unter /etc/debtree/endlist eine Liste mit Paketen, deren Abhängigkeiten nicht weiter verfolgt werden. Im Gegensatz zu den Paketen in der Skiplist, die gar nicht in der Grafik auftauchen, werden die Pakete in der endlist in der Grafik angezeigt. Allerdings endet die Linie mit Abhängigkeiten nach diesem Paket.

Nach dem Ausführen des Befehls erhält man folgende Grafik.

Abhängigkeiten von Nano mit Debtree visualisiert

Bei Paketen mit vielen Anhängigkeiten wird die Grafik schnell sehr riesig und unübersichtlich. Dies sieht man beispielsweise, wenn man sich die Abhängigkeiten des Webservers NGINX, ohne das setzen zusätzlicher Optionen, anzeigen lässt. Dabei handelt es sich auch bei NGINX noch um ein Paket mit relativ wenigen Abhängigkeiten. Möchte man die Abhängigkeiten des Pakets gnome-shell anzeigen, kapituliert dot mit folgender Meldung “dot: graph is too large for cairo-renderer bitmaps. Scaling by 0.533022 to fit” Auch angepasste Image ist anschließend noch knapp 55 MB groß.

NGINX Abhängigkeiten mit debtree visualisiert

Debtree Optionen

Um zu vermeiden, dass man riesige und damit unbrauchbare Grafiken erhält, bietet Debtree einige Optionen um die Ausgabe zu beeinflussen.

–no-recommends Empfohlene Pakete werden nicht angezeigt.
–no-alternatives Wenn verschiedene Pakete eine Abhängigkeit erfüllen können, wird nur die erste angezeigt.
–no-provides Keine virtuellen Pakete anzeigen.
–no-conflicts Pakete die mit dem abgefragten Paket in Konflikt stehen werden nicht angezeigt
–max-depth=number Abhängigkeiten werden nur bis zu einer bestimmten Ebene angezeigt

Natürlich finden sich in der Manpage noch eine Vielzahl weiterer Optionen, mit denen sich die Ausgabe beeinflussen lässt. Hierbei handelt es sich meiner Meinung nach um die wichtigsten.

Debtree Grafiken interpretieren

Die verschiedenen Pfeile, Farben und Formen haben folgende Bedeutungen.

Farbe der Pfeile Bedeutung
Blau Direkte Abhängigkeit
Schwarz Empfohlenes Paket (recommends)
Schwarz, gepunktet Vorgeschlagenes Paket (suggests)
Grün Stellt zur Verfügung (provides)
Rot Konflikt
Form der Kästen Bedeutung
Rechteckig, fetter Rand Das Paket, welches untersucht wird
Rechnteckig, normaler Rand Normale Pakete
Rechteckig, direkt untereinander Alternative Pakete mit der selben Funktion
Raute Paket, dessen Abhängigkeit nicht weiter verfolgt wird.
Achteckig Virtuelles Paket

Paketmanager haben ja im Normalfall die tolle Eigenschaft, wie durch Magie die benötigten Abhängigkeiten bereit zu stellen. Mit debtree lässt sich schön darstellen, wie diese Magie funktioniert, wie komplex die Abläufe sind und mit welchen Entscheidungen ein Paketmanager unter Umständen zu kämpfen hat.

Debtree visualisiert die Abhängigkeit von Paketen ist ein Beitrag von techgrube.de.

Bootzeit mit Systemd analysieren

Von:Niko
07. April 2019 um 12:08
Systemd Analyze Beitrag

Systemd wird häufig kritisiert, weil es größer und komplexer als bisherige Init-Systeme ist. Dafür bringt Systemd aber auch eine ganze Reihe an Tools zur Fehlerbehebung und Systemanalyse mit.

Eines davon ist systemd-analyze, mit dem sich der Bootvorgang des Systems darstellen und analysieren lässt. Die Ausgabe kann dabei textbasiert auf der Kommandozeile erfolgen, oder auch als svg-Grafik exportiert werden.

Bootvorgang mit systemd-analyze untersuchen

Ein simpler Aufruf von

systemd-analyze

zeigt eine Übersicht, welche Systembestandteile wie lange zum booten benötigen. Damit erhält man folgende Ausgabe.

Sofern das Betriebssystem auf einem Computer mit UEFI installiert ist, bekommt man auch die Startzeit des UEFI (firmware) präsentiert. Anschließend wird die Startzeit des Bootloaders ausgegeben (loader). Dass diese bei mir mit knapp 32 Sekunden angegeben ist, liegt (denke ich) an der Wartezeit im Grub Auswahlbildschirm. Anschließend werden die Startzeiten der systemnahen Komponenten (kernel) und der Benutzerumgebung (userland) angegeben.

Eine genauere Ausgabe erhält man mit dem Befehl

systemd-analyze blame

Damit erhält man eine Auflistung aller beim booten gestarteten Dienste, sortiert nach ihrer Startzeit. Damit lassen sich Dienste, die das starten verzögern schnell identifizieren.

Ausgabe von systemd-analyze blame

Außerdem lässt sich die Ausgabe auch als SVG-Grafik exportieren. Damit erhält man noch detailliertere Ergebnisse. der Export erfolgt mit

systemd-analyze plot > boot.svg

Allerdings ist die exportierte Grafik ziemlich groß, so dass man viel scrollen muss um diese zu analysieren. Horizontal wird dabei die Startzeit in Sekunden angegeben. Vertikal werden die einzelnen Dienste aufgelistet.

Ausgabe von systemd-analyze als SVG-Grafik

Die Ausgaben von systemd-analyze sind nicht nur interessant, sondern ermöglichen auch, auf den ersten Blick zu erkennen, warum der Bootvorgang so lange dauert. Dienste, die den Bootvorgang verlangsamen lassen sich damit direkt identifizieren, wo ansonsten möglicherweise eine langwierige Fehlersuche oder Analyse notwendig wäre.

Bootzeit mit Systemd analysieren ist ein Beitrag von techgrube.de.

PHP-Seiten wie WordPress mit OPCache beschleunigen

Von:Niko
05. Mai 2019 um 10:58
PHP Speed Beitrag

Normalerweise werden PHP-Skripte zur Laufzeit kompiliert. Das heißt, wenn jemand eine PHP-Seite wie WordPress aufruft, wird der PHP-Quelltext (die PHP-Datei) gelesen und vom PHP-Interpreter in sogenannten Bytecode (vorkompilierter Code) umgewandelt. Dieser Bytecode wird an eine virtuelle Maschine (die Zend Engine) übergeben, die daraus maschinenlesbaren Code erzeugt. Die Zend Engine stellt dabei eine einheitliche Laufzeitumgebung für verschiedene CPU-Architekturen und Betriebssysteme bereit.

Der Bytecode wird daraufhin verworfen und muss bei jedem Aufruf der Webseite neu generiert werden. Dies kostet Rechenzeit und verzögert den Aufruf der Webseite.

Durch die Nutzung von OPCache wird der Bytecode für die spätere Verwendung zwischengespeichert, so dass er nicht bei jedem Aufruf der Webseite neu erzeugt werden muss. Dies kann die Ladezeit von WordPress (oder anderen PHP-Projekten) spürbar beschleunigen.

Der Preis dafür ist, dass zum Zwischenspeichern des vorkompilierten Bytecodes RAM und/oder Festplattenspeicher benötigt wird. Außerdem werden (abhängig von der OPcache Knfiguration) Änderungen am PHP-Code unter Umständen nicht sofort sichtbar, da sich noch eine alte Version im Cache befindet.

OPcache aktivieren und konfigurieren

Um OPCache auf einem Ubuntu-Server zu nutzen, muss das Paket php7.2-opcache installiert werden. Anschließend kann der Cache über die php.ini aktiviert werden. Die php.ini befindet sich bei Ubuntu und der Verwendung von PHP als Apache-Modul unter /etc/php/7.2/apache2/php.ini. Bei Verwendung von PHP-FPM, beispielsweise mit NGINX, findet man die Konfigurationsdatei unter /etc/php/7.2/fpm/php.ini

In der php.ini scrollt man bis zum Abschnitt [opcache].

Um OPcache zu aktivieren muss die Zeile

;opcache.enable=0

abgeändert werden in

opcache.enable=1

Außerdem können und sollten weitere Einstellungen vorgenommen werden. In untenstehender Tabelle sind einige Option beschrieben, die ich für die wichtigsten halte.

Option Bedeutung
opcache.memory_consumption=256 Die Menge an Speicherplatz die OPcache zur Verfügung steht, in Megabytes.
opcache.interned_strings_buffer=16 Speicherplatz der für string interning zur Verfügung steht, ebenfalls in Megabytes.
opcache.max_accelerated_files=16229 Die maximale Anzahl an Schlüsseln (und damit PHP-Skripte) die gespeichert werden können. Der Wert sollte größer als die Anzahl vorhandener Skripte sein. Der tatsächlich verwendete Wert wird aus einem festen Set aus Primzahlen gewählt (223, 463, 983, 1979, 3907, 7963, 16229, 32531, 65407, 130987). Es wird die Primzahl verwendet, die größer oder gleich dem gesetzten Wert ist. Gibt man beispielsweise als Wert 10000 an, werden tatsächlich 16229 Schlüssel gecached. Man kann also auch direkt eine der angegebenen Primzahlen als Wert setzen.
opcache.max_wasted_percentage=10 Prozentsatz an verschwendetem Speicherplatz, der akzeptiert wird, becor der Cache komplett geleert wird. “Waste” entsteht, wenn sich der Code ändert, während OPcache läuft. Der alte Cache-Eintrag wird dabei als “waste” markiert.
opcache.validate_timestamps=1 Legt fest, ob OPcache in regelmäßigen Abständen prüfen soll, ob sich der PHP-Code in einer Datei geändert hat. Wenn dies deaktiviert ist, muss nach jeder Änderung am Code (z.B. ein WordPress Update) ein Reset von OPcache durchgeführt werden, oder OPcache neu gestartet werden. Wer WordPress-Updates automatisch einspielen lässt, sollte die Option aktivieren. Wer die manuell macht, kann die Option deaktivieren und zusätzlich Rechenzeit sparen.
opcache.revalidate_freq=300 Zeit in Sekunden, nach der überprüft wird ob sich der PHP-Code in einen Skript keändert hat. “0” bedeutet, dass die Prüfung bei jedem Aufruf vorgenommen wird.
opcache.file_cache=/path/to/cache OPcache kann Daten im Ram und/oder auf einem Datenträger speichern. Damit kann OPcache z.B. auch in Shared-Hosting Umgebungen genutzt werden. Auf dem eigenen Server hat die Nutzung dieser Option den Vorteil, dass bereits erzeugte Daten nach einem Neustart des Servers nicht verloren gehen. Das Verzeichnis muss vom PHP-Prozess beschrieben werden können.
opcache.file_cache_only=0 Legt fest ob OPcache seine Daten nur auf dem Datenträger speichert (1) oder ob Daten im RAM und zusätzlich auf dem Datenträger gespeichert werden (0)

Wenn der Server von mehreren Benutzern verwendet wird, sind evtl. die Optionen opcache.validate_permission und opcache.validate_root von Bedeutung, die standardmäßig deaktiviert sind. Erstere prüft, ob der User überhaupt Leseberechtigung für das entsprechende Skript hat. Dies verhindert, dass zwischengespeicherte Daten an andere Benutzer geleaked werden. Zweitere verhindert Namenskollisionen bei verschiedenen chroot Umgebungen.

Damit Änderungen wirksam werden, muss Apache, bzw. PHP-FPM neu gestartet werden. Dabei wird außerdem der Cache geleert.

Überprüfen ob OPcache genutzt wird

Eine schöne Möglichkeit zum Steuern von OPcache und zum prüfen, ob OPcache überhaupt genutzt wird ist das Tool opcache-gui das auf Github zu finden ist. Es handelt sich dabei um ein PHP-Skript, das den verwendeten Speicherplatz, die Anzahl der zwischengespeicherten Skripte uvm. anzeigt. Da sich außerdem verschiedene Funktionen von OPcache steuern lassen, sollte man den Zugriff auf das Skript mit einem Passwort sichern.

Um opcache-gui zu nutzen, muss lediglich das PHP-File in den eigenen Webverzeichnis kopiert werden und über den Webbrowser aufgerufen werden.

Wer opcache-gui dauerhaft einsetzen will, der sollte den Zugang unbedingt mit einem Passwortschutz versehen.

OPcache Gui

PHP-Seiten wie WordPress mit OPCache beschleunigen ist ein Beitrag von techgrube.de.

Intel OSTS 2019: Ohne Software ist auch die beste Hardware nichts

14. Mai 2019 um 22:56

Mit Keynotes von Raja Koduri und Imad Sousou rückt Intel zum Open Source Technology Summit die Software noch mehr in den Fokus als bisher. Denn durch Software lässt sich vergleichsweise günstig die Leistung optimieren und mitunter auch deutlich steigern, als es nur über Hardwareverbesserungen möglich ist.

❌