Beiträge von AccountSuspended

    Ich nutze hauptsächlich PostgreSQL. Anfangs (2015 rum) nutzte ich noch MySQL aber all die Vorteile von PostgreSQL und Erfahrungen der Community im Internet, haben mich all die Jahre zu PostgreSQL gebracht.

    Gemini (Thinking-Modus): "Erkläre mir die wichtigsten Unterschiede zwischen MySQL und PostgreSQL - Warum wird was von der Community bevorzugt?"

    FeatureMySQL (v9.x+)PostgreSQL (v17/18)
    PerformanceSchneller bei einfachen Lesezugriffen (Selects).Stärker bei komplexen Joins und Schreiblast.
    ConcurrencyNutzt Lese-/Schreibsperren (kann bei vielen Schreibern haken).MVCC (Multi-Version Concurrency Control) – Schreiber blockieren Leser nicht.
    DatentypenStandard-SQL + JSON.Riesig: Arrays, Geodaten (PostGIS), JSONB, Range-Typen, Vektoren.
    ErweiterbarkeitBegrenzt.Extrem (eigene Funktionen in Python, JS, C, etc.).
    ACID-ComplianceAbhängig von der Storage Engine (meist InnoDB).Von Grund auf voll ACID-konform.


    Zudem finde ich alleine die Erweiterbarkeit von PostgreSQL unschlagbar. Ich benötige zum Beispiel eine Suche, die es mir ermöglicht nach "ifone" zu suchen und "iPhone" zu erhalten - Ich verwende "pg_trgm", welche mit einer Zeile CREATE EXTENSION IF NOT EXISTS pg_trgm; zum Projekt hinzugefügt wird.

    Gemini (Thinking-Modus): "Wie sieht es mit Extensions wie "pg_trgm" für PostgreSQL aus?"

    Zitat

    Die Extension pg_trgm (Trigram) ist einer der Gründe, warum PostgreSQL oft als „die Datenbank, die alles kann“ bezeichnet wird. Sie ist ein perfektes Beispiel für die Erweiterbarkeit von Postgres, während MySQL in diesem Bereich eher auf spezialisierte (aber unflexiblere) Bordmittel setzt.

    Hier ist, warum pg_trgm so ein „Game-Changer“ für die Community ist:

    1. Was macht pg_trgm eigentlich?

    Die Extension zerlegt Texte in Trigramme – das sind Sequenzen von drei aufeinanderfolgenden Zeichen.

    • Beispiel: Das Wort „Apfel“ wird intern etwa so zerlegt: {" a"," ap","apf","pfl","fel","el "}.

    Die zwei Superkräfte der Extension:

    1. Ähnlichkeits-Suche (Fuzzy Search): Sie berechnet, wie viele Trigramme zwei Texte teilen. Wenn ein User „Apfel“ sucht, aber „Apfbel“ tippt, findet Postgres das Ergebnis trotzdem, weil die Schnittmenge der Trigramme sehr hoch ist.
    2. Der Index-Turbo für LIKE: Normalerweise kann eine Datenbank einen Index nur nutzen, wenn du nach LIKE 'Anfang%' suchst. Wenn du aber nach LIKE '%Ende%' suchst (Wildcard am Anfang), muss MySQL die komplette Tabelle scannen. Postgres mit pg_trgm kann auch das indizieren.
    FeaturePostgreSQL (pg_trgm)MySQL (Standard)
    Tippfehler-ToleranzExzellent. Findet „iPhone“, wenn man „ifone“ sucht (basierend auf Zeichen-Ähnlichkeit).Begrenzt. Nutzt meist SOUNDEX, was nur nach dem Klang geht (phonetisch), aber bei Tippfehlern oft scheitert.
    Teilstring-SucheIndizierbar. Suchanfragen wie LIKE '%xyz%' sind dank GIN/GiST-Index extrem schnell.Langsam. Führt bei großen Tabellen zu einem Full Table Scan (kein Index-Support für führende Wildcards).
    RankingGibt einen Score (0 bis 1) zurück, wie gut der Treffer passt.MySQL Full-Text Search kann ranken, ist aber auf ganze Wörter fixiert, nicht auf Zeichenfolgen.

    zswap geht nur mit lzo Kompression (im Kernel enthalten), nicht das bessere zstd. Zumindest nicht ohne den Kernel neu zu kompilieren, wovon ich jetzt mal absehen würde.

    Du brauchst den Kernel nicht neu kompilieren. Die Module werden scheinbar nicht früh genug geladen, weshalb du bei Bedarf direkt nach dem Boot die Werte auf "zstd" stellen kannst.

    Anleitung mithilfe von Gemini
    Hinweis: Mit GRUB wurde "zstd" angeblich nicht früh genug geladen, weshalb dies nun mit der unten stehenden Konfiguration später passiert.

    nano /etc/initramfs-tools/modules

    Code
    zstd
    zstd_compress
    zsmalloc

    update-initramfs -u
    nano /etc/tmpfiles.d/zswap.conf

    Code
    w /sys/module/zswap/parameters/enabled - - - - 1
    w /sys/module/zswap/parameters/compressor - - - - zstd
    w /sys/module/zswap/parameters/zpool - - - - zsmalloc
    w /sys/module/zswap/parameters/max_pool_percent - - - - 25

    reboot

    Jetzt kannst du erneut mit deinem Befehl in deiner Anleitung ausprobieren: cat /sys/module/zswap/parameters/compressor
    image.png

    Mich würden Erfahrungen mit der Nutzung von ZSWAP interessieren. Welche Vorteile bzw. Nachteile gibt es gegenüber ZRAM? Anwendungsbereich z.b Webserver mit MySQL, Apache, PHP-FPM.

    ZSWAP komprimiert und lagert diese Daten auf der Festplatte bzw. NVMe (Genau wie normales SWAP nur eben komprimiert und kleinere Daten) was selbstverständlich langsamer ist als wie Daten direkt im RAM selbst (ZRAM). Spürbar ist das glaube ich für die meisten aber nicht - Ich hatte noch keine Probleme mit SWAP selbst

    Ich nutze ZRAM mit ZSTD. Konnte da jetzt noch keine Nachteile feststellen. Ist ein Unterschied zu LZ4 tatsächlich spürbar?

    Das weiß ich nicht. Ich nutze nur LZ4, da es meiner Meinung gut genug ist und viele Benchmarks in Foren es als "die beste Wahl" auszeichneten.

    Danke für Euere Hinweise und interessant zu hören, dass das ein Thema ist, das verwendet wird. Ich bin jetzt 25 Jahre Linuxer, aber habe noch nie von ZRAM oder ZSwap gehört gehabt, bisher.

    Technisch machbar sicher, aber Claude widerspricht, dass das sinnvoll ist:

    RAM → [zswap-Pool, komprimiert] → zram (komprimiert) → Swap-Datei

    Wäre also doppelte Komprimierung auf zwap und zram Ebene, mehr CPU Bedarf bei quasi keinem Gewinn bei der zweiten Komprimierungsstufe mehr.

    Ich rede vom "normalen" SWAP und nicht ZSWAP.

    ZRAM arbeitet mit dem RAM, der SWAP lagert die Daten aus dem RAM auf die Festplatte bzw. NVMe aus.

    Während ZRAM eine Priorität von 100 erhält, kriegt SWAP lediglich 10 (Muss man selbst konfigurieren), um nur in Notfällen wo der RAM selbst zu knapp wird auf die langsame Variante zurückgreift und mögliche Fehler bzw. Abstürze verhindert.

    Sollte jemand der Meinung sein, daß ich falsch liege, würde ich mich über Korrekturen freuen :)

    Ja ZRAM empfehle ich auch immer. Nutze ich auch für Server mit 8GB oder mehr, da es einfach durchaus viel bringen kann. Du kannst auch neben ZRAM zusätzlich SWAP einrichten.

    //EDIT
    Bei ZRAM ist LZ4 die bestmögliche Komprimierung. Je nach Bedarf kann man auf ZSTD umstellen, für eine bessere Komprimierung aber dadurch wird auch mehr Zeit bzw. CPU benötigt also nicht für alle Anwendungen empfohlen und wirklich viel mehr Speicher lässt sich dadurch nicht einsparen (ca. doppelte Zeit für 30% weniger Speicherverbrauch)

    Die reine Leistung unterscheidet sich nur minimal, soweit mir bekannt ist. Der Steal bei den VPS von Netcup (x86) ist wirklich sehr gering und stabil, daher glaube ich, daß für die meisten ein VPS mehr als ausreicht und ein sehr attraktives Angebot darstellt.

    Die RS bieten in meinen Augen lediglich:
    - Minimal höhere Verfügbarkeitsgarantie
    - Etwas bessere Traffic-Regelung
    - So gut wie keinen Steal der CPU (VPS x86 haben bis zu 3% bei voller Auslastung - Identische Leistung)

    Root Server hat man die Kerne dediziert
    Du erhältst keine Kerne sondern lediglich Threads. Ein Thread eines Kerns stellt dein "vCore" also virtuellen Kern dar

    Also 55% habe ich bei meinen ARM-Servern bisher nie gesehen. 30% war schon der Extremfall.

    Ich hatte schon sehr hohe gehabt und ich meine auch schon von anderen gelesen zu haben, daß deren Steal bei ~50 lag. Ich habe gerade mal nach alten E-Mails mit dem Support gesucht, wo ich denen Benchmarks und mehr zugesandt habe aber leider nichts mehr gefunden :/

    Ich habe jetzt keine 20 erreicht und dies schaut soweit ganz OK aus gegenüber meiner alten Werte :/

    Ich habe soeben einen neuen VPS ARM übernommen und bei YABS festgestellt, daß nun kein hoher Steal mehr vorliegt?! Wurde nun nach 1 Jahr ohne Reaktion seitens Netcup das Problem endlich behoben?

    Der Steal liegt bei mir mit Geekbench6 bei gerade mal 1.7% und im Multi-Core höchstens kurzzeitig auf ~19%!

    Ich würde mich über eure Werte freuen :)


    // EDIT
    Ich hatte sonst immer bis zu 55%!

    Was betreibst du denn mithilfe von Docker? Docker alloziert zusätzlichen Overhead und da es in Go geschrieben wurde, benötigt ist ohnehin etwas mehr RAM, bis dann mal deren GC einsetzt (Grund warum ich Go meide) - Vielleicht lässt es sich auch ohne Docker betreiben, um für etwas mehr Puffer zu sorgen, sollte die Leistung dadurch beeinträchtigt werden (Nicht die Welt aber ohne Docker könnten dadurch vielleicht ~200 MB frei werden, je nach was genau du machst und wie viele Container zu betreibst)

    Vielleicht wird von dem was du betreibst RAM alloziert, um diesen sicher und direkt zur Verfügung zu haben? Vielleicht wird gar nicht das verwendet, was du da als Verbrauch siehst? (Mögliche Einstellungssache?)

    Ich glaube, es fehlt hier an Details zu deinem Nutzen ...

    // EDIT
    Bei der geringen Auslastung, würde ich mir mal ggfs. zRAM anschauen und den Speicher möglichst komprimieren, dadurch lässt sich einiges mehr an Daten zwischenspeichern und die CPU kann auch mal genutzt werden :D

    Zumal das nicht nur echte Neukunden in dieser Höhe betreffen würde, sondern auch Bestandskunden, die einen neuen Server ordern. Das könntest du komplett knicken. Wer würde z.B. von G11 oder G12 auf G13 upgraden, wenn ihn die vielleicht 10-30% (grob geschätzt) bessere Leistung den doppelten Preis oder noch mehr kosten würde? Ich nicht, soviel kann ich definitiv sagen. Viele andere wohl auch nicht.

    Man brauch nicht bei jeder Generation aufrüsten. Bis G13 kommt, vergehen 1-2 Jahre und vllt. hat sich der Markt bis dahin stabilisiert und evtl. hältst du es noch bis G14 in 3-4 Jahren aus, wo ganz sicher die Preise wieder normal sind

    Preiserhöhungen sollten nur für neue Kunden gelten, nicht für bestehende.

    Das ist so, als würdest du RAM für 10 Euro kaufen und später kommt jemand und verlangt eine Nachzahlung, nur weil der Preis inzwischen gestiegen ist.

    Meiner Meinung nach ist das unprofessionell von netcup. Bestandskunden sollten ihre vereinbarten Preise behalten, und neue Kunden zahlen eben den höheren Preis.

    Ich glaube die haben es mit einberechnet, daß niemand unter anderem über 10€ im Monat für ein VPS mit nur 4 vCores zahlen wird - Diesen Preis zahlt man bei Anbietern die anonym per Prepaid Server anbieten und das ohne Vertragsbindung (Monatlich kündbar) und die hälfte bei der Konkurrenz

    Dann bist du wohl bei einem anderen Anbieter. Selbst mit 0% MwSt. sind es mindestens 18€ und wenn du dann noch IPv4 entfernt sind es noch immer 17,50€

    image.png (379×585)

    Also ich sage schon mal voraus:
    Alte Verträge von Servern mit DDR3 und DDR4 werden aufgrund der nun zu hohen Preise gekündigt. Es wird Platz durch freier alter Hardware geschaffen und um die Gemüter zu beruhigen wird es dieses Jahr (vllt. ja zu Ostern schon) neue Angebote mit den alten Servern für deutlich mehr als früher aber günstiger als aktuelle geben, was für Kunden zu gute kommen soll und gleichzeitig mehr Profit wegen den höheren Preisen als die vorherigen Verträge von älteren Kunden bedeutet (+24.33%) ^^

    Also sagt du das der DDR 3 Arbeitsspeicher nicht Teurer geworden ist? Was ich mitbekommen habe ist dort auch der Preis angestiegen. Wie schon erwähnt es wird eine Mischkalkulation sein, sonnst müsste man es wesentlich mehr erhöhen denke ich.

    Solch alte Hardware bzw. DDR3 als NEU zu kaufen, macht absolut keinen Sinn. Wenn alte Hardware entweder beschädigt oder einfach durch den Betrieb (Strom etc.) zu teuer wird, wird normalerweise kostenlos auf neuere Hardware aufgerüstet (Siehe dieses Beispiel - Von Intel Xeon auf AMD EPYC).