Markus Stolpe M-T-S[AT]GMX.NET: Shared Memory / Semaphoren - Verständnisproblem

Beitrag lesen

hallo!

vielen herzlichen dank für die antworten! ich hätte ja gar nicht gedacht, dass sich doch so zahlreiche mit sowas auskennen :)

ich erlaube mir, noch ein paar anschlussfragen zu stellen:

Mir ist nicht klar, warum du hier shared memory verwenden willst.

mysql scheint nun deutlich an die grenzen gestossen zu sein. in stosszeiten sind evtl. auch selects von 255/s möglich. jedenfalls knapp. mysql lockte sich anfänglich öfter mal ("in benutzung" lt. phpmyadmin -> bug mit mysql patch beseitigt, mittlerweile scheint apache nicht mehr mit mysql kommunizieren zu können. problem kann nicht eingegrenzt werden, aber irgendwann hat mysql wohl auch seine grenzen....)

..., mit dem anderen host du dir ein Semaphor.

ah! okay, ich dachte semaphoren seien nochmal irgend eine komische unterteilung...

e.c. sage ich imt sem_get($shm_id,1)) lediglich, dass "er" so 'ne semaphore kriegt, die eben nur für einen benutzt werden kann?

» Das kommt auf die Fehlermeldung an. Semaphoren, wenn du nicht genuegend Semaphoren bekommst,

Shared-Memory, wenn du nicht genuegend Shared-Memory alloziieren kannst :)

mittlerweile bekomme ich leider nur noch "die seite kann nicht angezeigt werden." die fehlermeldung war was mit sinngemäss "nicht genügend space left. der RAM war jedoch noch ausreichend, gehe ich davon aus, dass der in der php.ini definierte wert für jedes einzelne shared memory segment gilt, wovon ich ausging.
lt. google-recherche bin ich dann auf postgreSQL-infos gestossen. dort ist die fehlermeldung hinlänglich bekannt und als lösung solle man SHMMAX hochsetzen. hab dann auch diverses probiert, was wohl nicht funktioniert hat und fand dann durch ipcs -u und -l leider dann so viele angaben, dass ich feststellen musste, dass dies mein einfühlungsvermögen in sowas übersteigt.
schlussendlich hatte ich dann auch bedenken, dass ich dennoch für verschiedenes einen wert evtl. nicht hoch genug setze bzw. zu hoch, so dass evtl. meine SHM-dinger noch irgendwie apache beeinträchtigen.

Warum willst du hier shared memory benutzen?

wie gesagt: jede datenbank scheint mit der unmenge an selects probleme zu bekommen. alternativ - da auch mittlerweile einfacher zu realisieren - zog ich ein filesystem in betracht; files mit den entsprechenden einträgen werden dann eben includiert - falls vorhanden - und - falls nicht vorhanden - aus der DB ausgelesen, dann das file geschrieben.

persönlich hatte ich dann mehr zu SHM vertrauen. der server hat 4 GB Ram intus.

wieder viel geschrieben, meine fragen kurz zusammengesfasst:

  • welche werte müsste ich nun definitiv im apache-kernel erhöhen, die sich auf die anzahl der reinzulegenden werte (arrays) von derzeit 2 Mio beziehen? gibts hier irgendwo verständliche informationen wie das zu handeln ist
  • ist in meinem fall von dem SHM evtl. komplett abzuraten und vielleicht doch ein "file-cache-system" zu verwenden?

besten dank nochmals!

Markus Stolpe