SymLinksIfOwnerMatch performance

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

PHP Developer - medior functie

Functieomschrijving Ben jij innovatief en wil jij je kennis graag delen met jouw nieuwe collega's? Lees dan snel verder! Voor een leuke opdrachtgever in de omgeving van Roosendaal zoeken wij een Symfony developer. Of je nou junior, medior of senior bent, je krijgt hier alle vrijheid en verantwoordelijkheid om jouw eigen loopbaan te ontwikkelen. Je gaat je hier bezig houden met en inspelen op de actualiteiten van jouw vakgebied. Techstack: Symfony, PHP, mySQL. Kennis van Svelte is helemaal mooi meegenomen. Bedrijfsprofiel Al sinds '99 is dit webbureau actief. De kernwaarden binnen het bedrijf zijn integer, dienstbaar en deskundig. Je komt

Bekijk vacature »

Mendix Developer

For our client in Amsterdam, we are looking for a Senior Mendix Developer. Company description Our client is an IT Consultancy company who’s been active for 10 years now. With their ambitious team, they are working with different clients in order to help them with analyzing their data and giving advice to them, regarding how they can use their data in the smartest ways, or to make sure that their mobile or web applications are working efficiently. As you get a glimpse of various industries, it is guaranteed that no day will be the same. Job description As a Mendix

Bekijk vacature »

Cymer Patch Server Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Veldhoven Vacature ID: 12919 Introductie This new patch server will be built on Python and Django ReST and GraphQL services with a React frontend, it will consist of several microservices and run on a Kubernetes cluster. It will be supported by several middleware applications such as ElasticSearch, Redis, RabbitMQ, Oracle and Artifactory. Functieomschrijving The Patch Admin team always aim to deliver software at a high quality, we avoid sacrifices here to maintain our velocity. Practically this means that we practice test driven development and perform end-to-end automated testing on our software. This means

Bekijk vacature »

Back-end PHP Software Developer - Juniorfunctie

Functieomschrijving Wij zijn op zoek naar een PHP Software Developer om ons team te versterken en mee te werken aan de ontwikkeling van eigen IOT-oplossingen. In deze functie ben je verantwoordelijk voor het bouwen van webapplicaties, apps en dashboards voor het uitlezen en managen van sensoren in machines. Je werkt nauw samen met een team van ontwikkelaars en engineers om de beste software-oplossingen te creëren. Jouw werkzaamheden zien er als volgt uit: Je bent in deze rol verantwoordelijk voor het ontwerpen, ontwikkelen en onderhouden van webapplicaties en softwaretoepassingen voor in-house ontwikkelde IOT oplossingen. Je werkt aan complexe databases en back-end

Bekijk vacature »

Front-end Developer

Onze klant is sinds 2 jaar actief als adviseur en bemiddelaar in de verzekeringsmarkt. Sindsdien proberen zij deze slapende markt flink wakker te schudden. Dit willen zij doen door het bouwen van slimme vergelijkers op hun eigen website en die van partners. Het bedrijf wil continu voorop lopen, zodat consumenten eenvoudig de verzekeringen kunnen vinden die het beste bij ze past. Functieomschrijving Als Front-end Developer werk je aan vergelijkingsmodules die consumenten dagelijks gebruiken bij het vergelijken en afsluiten van verzekeringen. Je vindt het leuk om samen te werken met de product owner, bestaande modules te verbeteren en nieuwe vergelijkers "from

Bekijk vacature »

Medior PHP developer

Functie Samen met je development team werk je Agile Scrum en met jullie gezamenlijke kennis en ervaring bepalen jullie samen de beste keuze voor techniek en architectuur. Naast het ontwikkelen van software ben je continue bezig om ook jezelf te ontwikkelen. Ze werken met o.a.: PHP, Laravel, Doctrine, PHP Unit, Behat, React, TypeScript, (My)SQL, Postgress, Redis, ElasticSearch, Docker, Nginx, GIT flow, JIRA, AWS. Eisen • HBO werk- en denkniveau • Je hebt goede kennis en ervaring met PHP • Je bent niet bang voor complexe projecten • Je werkt graag zelfstandig aan applicaties • Je bent altijd nieuwsgierig naar nieuwe

Bekijk vacature »

Account Developer

Voor Bol.com zijn wij per direct op zoek naar een Account Developer voor 32-40 uur per week op het kantoor in Utrecht. Wil jij een directe bijdrage leveren door partners van de juiste data-inzichten te voorzien en via campagnes op nieuwe platformkansen en features te wijzen? Ben jij analytisch sterk en kun jij dit vertalen naar plannen en inspirerende gesprekken? Lees dan snel verder! wat bieden wij jou Salaris van €2400 - €2600 obv 40 uur Minimaal 6 maanden Werklocatie is Utrecht Werken bij bol.com wie ben jij Jij bent commercieel gedreven en weet altijd aan de juiste knoppen te

Bekijk vacature »

Software ontwikkelaar

Ben jij graag bezig met verschillende projecten? Vind jij beleving van klanten én medewerkers ook belangrijk? Wij zijn vanwege de doorontwikkeling van het applicatielandschap van onze opdrachtgever op zoek naar een fulltime software ontwikkelaar. Omschrijving Jij en jouw collega’s zijn verantwoordelijk voor de continuïteit en waarborging van het applicatielandschap. Om de processen vloeiend te laten verlopen is software ontwikkeling daarom van essentieel belang. Onze opdrachtgever doet dit voornamelijk zelf, met door hun eigen ontwikkelde applicaties. Dit betekent dat jij: functionele eisen vertaalt naar gebruiksvriendelijke software; tijdens SCRUM sessies advies geeft over het te bouwen ontwerp; nieuwe software ontwikkelt en het

Bekijk vacature »

Traineeship Full Stack Java developer

Dit ga je doen Start jij op 7 augustus bij de Experis Academy dan kickstart jij jouw IT-carrière! We leiden je op tot een gewilde Full Stack Java Developer met alle kennis en vaardigheden die nodig zijn om de arbeidsmarkt te betreden. Wat kun je verwachten, hoe zit een dag in het leven van een Trainee eruit? Periode 1 Als Full Stack Java Developer Trainee volg je vanuit huis een op maat gemaakte onlinetraining die in het Engels wordt gegeven. De tijd die je kwijt bent aan het volgen van de training kun je vergelijken met een fulltime werkweek. In

Bekijk vacature »

Lead C++ Developer

De rol van Lead C++ Developer Als Lead C++ developer bij KUBUS word je verantwoordelijk voor het implementatie design van requirements en de software architectuur van de desktop applicaties van BIMcollab, ons platform voor 3D model-validatie en issue-management bedoeld om de kwaliteit van 3D design-modellen voor gebouwen te verbeteren. Betere 3D modellen leiden tot betere gebouwen, dus zo draag je bij aan verduurzaming van de gebouwde omgeving met slimmer gebruik van materialen, minder verspilling en energie-efficiënte gebouwen. Een goede gebruikerservaring staat bij ons hoog in het vaandel; we gaan in onze ontwikkeling voor innovatie en kwaliteit. In je rol als

Bekijk vacature »

Senior Front-End Developer

Als Senior Front-End Developer bij Coolblue verbeter je de gebruiksvriendelijkheid van onze webshop voor miljoenen klanten. Wat doe je als Senior Front-End Developer bij Coolblue? Als Senior Front-end Developer werk je aan de gebruiksvriendelijkheid van onze webshop voor miljoenen klanten. Je vindt het leuk om samen te werken met de UX designer om stories op te pakken. Daarnaast ben je trots op je werk en verwelkomt alle feedback. Ook Senior Front-end Developer worden bij Coolblue? Lees hieronder of het bij je past. Dit vind je leuk om te doen Verbeteren van de gebruiksvriendelijkheid van onze webshop voor miljoenen klanten. Nadenken

Bekijk vacature »

OutSystems Developer

Dit ga je doen Het van scratch af aan ontwikkelen van applicaties met OutSystems; Het aanhaken bij diverse projecten binnen de organisatie; Schakelen met de business; Meedenken over de mogelijkheden van het platform binnen de organisatie. Hier ga je werken Deze organisatie is een toonaangevende speler in de vastgoedbranche en telt momenteel ruim 500 medewerkers. Met meer dan 150 applicaties staat er een complex applicatielandschap, bestaande uit standaard- en maatwerkapplicaties. De maatwerkapplicaties worden ontwikkeld door een inhouse development team. Het doel voor de komende periode is het verder vernieuwen en optimaliseren van het huidige applicatielandschap. Zo staat de organisatie aan

Bekijk vacature »

Software Ontwikkelaar PHP

Functie omschrijving Full Stack Software Ontwikkelaar gezocht! Voor een bedrijf in de regio van Ermelo zijn wij op zoek naar een Software Ontwikkelaar die gaat bijdragen aan het door ontwikkelen, onderhouden en optimaliseren van SaaS applicatie van dit bedrijf. Hierbij ga jij voor- en samenwerken met de klanten van de organisatie, het is hierbij dus van groot belang dat je communicatief vaardig bent en dat je beschikt over beheersing van zowel de Nederlandse als Engelse taal. Bedrijfsprofiel Waar ga je werken? Altijd al in een echt familiebedrijf willen werken? Dan is dit je kans! Het bedrijf waar je komt te

Bekijk vacature »

Front-end Developer

Functie omschrijving Wij zijn op zoek naar een Front-end Developer! Als Front-end Developer binnen dit softwarebedrijf ga je de frontends voor zowel je eigen interne projecten als die voor klanten opzetten, onderhouden en uitbreiden. Je zet ideeën om naar mooie successen voor de klanten. Dat is in een notendop wat je gaat doen! Wat kun je verwachten? Je werkt aan de doorontwikkeling van bestaande maatwerkapplicaties. Bijvoorbeeld wanneer de klant de applicatie wil uitbreiden met een nieuwe feature; Samen met het team van backenders en desginers zet je nieuwe ideeën van klanten om naar mooie oplossingen; Je werkt met verschillende frameworks.

Bekijk vacature »

Full Stack .NET Developer

Dit ga je doen Als developer nieuwe gave features ontwikkelen; Werken met technieken als C#, Angular 12 en Javascript,; Maken van technische keuzes en beslissingen over de architectuur; Junior collega's coachen; Initiatief nemen voor nieuwe technische mogelijkheden; Je bent een belangrijke schakel - en vindt het leuk - om te schakelen met de business. Hier ga je werken In een team van 7 professionals ben je als Full Stack .NET Developer verantwoordelijk voor het ontwikkelen van applicaties voor het grootste inhouse product: een applicatie voor alles omtrent hypotheken. De programmeertaal die je hierbij beheerst is C#. Wil je van meerwaarde

Bekijk vacature »

Pagina: « vorige 1 2 3 volgende »

Ben van Velzen

Ben van Velzen

01/06/2016 12:44:06
Quote Anchor link
Mogelijk performanceverlies treedt op in de volgende gevallen:
- FollowSymlinks staat uit
- SymlinksIfOwnerMatch staat aan

In deze gevallen wordt per path element met lstat() bekeken of het een symlink betreft, dus:
is /home een symlink?
is /home/ozzie een symlink?
etc etc. Als je pad diep genoeg doorloopt is er een meetbaar verschil in performance, maar of dat perceptueel ook aanwezig is durf ik niet te zeggen. Het grootste deel van de request bevindt zich in de applicatie, en wanneer het niet om je applicatie maar om statische bestanden gaat worden deze toch veelal gecached.

Wanneer FollowSymlinks gewoon aan staat wordt alleen op het opgevraagde bestand een stat() call gedaan, om te kijken of deze bestaat.

Lang verhaal kort: in de benchmarks zie je het terug, maar je merkt er eigenlijk niets van.
 
PHP hulp

PHP hulp

23/11/2024 13:27:22
 
Ozzie PHP

Ozzie PHP

01/06/2016 13:48:09
Quote Anchor link
@Thomas:

>> Ik zie zo direct niet echt een waarschuwing staan in het stukje waar je naar linkt, daar wordt enkel uitgelegd wat er gebeurt bij welke instelling.

Die hele pagina met als titel "Apache Performance Tuning" gaat over performance ;-)

Quote:
However, there are compile-time and run-time configuration choices that can significantly affect performance.


>> Waarom zet je niet meteen index.php #2 in de document root ...

Misschien wel omdat index2 de index is van een overkoepelend framework buiten de doc root ;)

@Ben van Velzen

>> ... In deze gevallen wordt per path element met lstat() bekeken of het een symlink betreft ... Wanneer FollowSymlinks gewoon aan staat wordt alleen op het opgevraagde bestand een stat() call gedaan

Is dit een andere uitleg dan jouw eerdere uitleg? Eerder vertelde je dat in beide gevallen lstat wordt uitgevoerd, maar dat bij SymlinksIfOwnerMatch nog de controle op eigenaar plaatsvindt.

>> Als je pad diep genoeg doorloopt is er een meetbaar verschil in performance

Oké ... maar nog even voor de goede orde. Als je index.php in var/www/vhosts/mijnsite.nl staat, dan vinden er dus 4 controles plaats per request ... want als index.php eenmaal geladen is neemt PHP het over en vinden er dus geen controles meer plaats, correct?
 
Thomas van den Heuvel

Thomas van den Heuvel

01/06/2016 14:30:17
Quote Anchor link
>> Misschien wel omdat index2 de index is van een overkoepelend framework buiten de doc root ;)

En de reden dat je dan een apart index bestand nodig hebt is?

Er bestaat zoiets als set_include_path().

Dit in combinatie met een autoloader = win.
Gewijzigd op 01/06/2016 14:31:02 door Thomas van den Heuvel
 
Willem vp

Willem vp

01/06/2016 14:31:29
Quote Anchor link
> Is dit een andere uitleg dan jouw eerdere uitleg? Eerder vertelde je dat in beide gevallen
> lstat wordt uitgevoerd, maar dat bij SymlinksIfOwnerMatch nog de controle op eigenaar plaatsvindt.

Zoals ik het interpreteer is de uitleg hetzelfde. Althans, in zijn laatste post beschreef Ben wat er gebeurt als FollowSymlinks aanstaat, en in de eerdere post wat er gebeurt als die instelling uitstaat (al lijkt de eerste post iets anders te suggereren, maar dat zal een typo zijn geweest).
 
Ben van Velzen

Ben van Velzen

01/06/2016 14:33:02
Quote Anchor link
>> Is dit een andere uitleg dan jouw eerdere uitleg? Eerder vertelde je dat in beide gevallen lstat wordt uitgevoerd, maar dat bij SymlinksIfOwnerMatch nog de controle op eigenaar plaatsvindt.

Nee, ik heb dat deel alleen weggelaten omdat het voor de performance geen verschil maakt. De systemcall zorgt voor de vertraging. Een simpele if (direntry.uid == uid) is niet langzaam te noemen.

>> Oké ... maar nog even voor de goede orde. Als je index.php in var/www/vhosts/mijnsite.nl staat, dan vinden er dus 4 controles plaats per request ... want als index.php eenmaal geladen is neemt PHP het over en vinden er dus geen controles meer plaats, correct?

5 controles, index.php kan ook een symlink zijn. Verder klopt het helemaal.
Gewijzigd op 01/06/2016 14:33:31 door Ben van Velzen
 
Ozzie PHP

Ozzie PHP

01/06/2016 14:38:29
Quote Anchor link
@Thomas

Autloader lijkt me logisch. Een aparte index omdat ik nog wat specifieke zaken wil kunnen instellen per vhost, maar wellicht iets om over na te denken.

@Ben

Oké. Lang verhaal kort. Dus qua performance maakt het niks uit en kunnen we dus 'veilig' kiezen voor SymlinksIfOwnerMatch in plaats van FollowSymlinks :-)
Gewijzigd op 01/06/2016 14:39:16 door Ozzie PHP
 
Ben van Velzen

Ben van Velzen

01/06/2016 14:50:41
Quote Anchor link
>> Oké. Lang verhaal kort. Dus qua performance maakt het niks uit en kunnen we dus 'veilig' kiezen voor SymlinksIfOwnerMatch in plaats van FollowSymlinks :-)

Voor het merken van het veschil maakt het niet uit, als je zware benchmarks gaat doen ga je enkele milliseconden extra zien. Veiligheid kent altijd een prijs, en in dit geval is de prijs dusdanig klein dat je er effectief niets van merkt.
 
Ozzie PHP

Ozzie PHP

01/06/2016 14:52:00
Quote Anchor link
Oké, top ... thanks!
 
Thomas van den Heuvel

Thomas van den Heuvel

01/06/2016 17:37:02
Quote Anchor link
En dan nu maar output buffering gaan gebruiken en queries optimaliseren met indexes zodat je echte winst kunt gaan pakken :p.
 
Ozzie PHP

Ozzie PHP

01/06/2016 20:33:23
Quote Anchor link
Wat voor vorm van output buffering, welke werkwijze, doel je dan op?
 
Ben van Velzen

Ben van Velzen

01/06/2016 20:56:57
Quote Anchor link
Ik gok erop dat Thomas bedoelt dat als je winst wil halen uit je Apache config dat je dan naar je applicatie moet gaan kijken ;-)
 
Ozzie PHP

Ozzie PHP

01/06/2016 21:02:27
Quote Anchor link
Ja, dat snap ik :-) Maar hij noemt specifiek output buffering ... ben dus benieuwd wat ie daarmee bedoelt.
 
Ben van Velzen

Ben van Velzen

01/06/2016 21:09:38
Quote Anchor link
Tsja, hoe minder vaak je contact hebt met de socket hoe sneller een pagina doorkomt. Iedere send operatie is immers een syscall en syscalls zijn traag. Ook kun je door slim te bufferen en flushen alvast het begin van de pagina renderen en alsnog bezig zijn met uitvoeren van je script.
 
Ozzie PHP

Ozzie PHP

01/06/2016 21:16:28
Quote Anchor link
Oké ... een tijdje terug hadden we het volgens mij ook over output buffering hier ... en ik zei toen ook al dat een aantal jaar eerder output buffering werd afgeraden hier op het forum.

>> Tsja, hoe minder vaak je contact hebt met de socket hoe sneller een pagina doorkomt.

Ik neem aan dat je hiermee bedoelt dat je in plaats van dat je in script A de header echoot en in script B de body en in script C de footer, dat je beter alles in een variabele kunt stoppen en alles pas aan het eind in 1x echoot (even simpel gezegd)?
 
Ben van Velzen

Ben van Velzen

01/06/2016 21:51:59
Quote Anchor link
Output buffering wordt in het algemeen afgeraden omdat het langzaam voelt en het "incorrect programmeren" in de hand werkt. Denk hierbij aan op de verkeerde punten headers versturen etc. Maar slim toegepast kan het sneller voelen. Buffer dus ook niet de gehele layout, maar doe dit in stappen. Zodra je alles voor de header van je site, en met name de css etc in de bron staat kun je flushen, dan kan de browser hier alvast mee aan de slag. Idem voor andere logische elementen.
 
Thomas van den Heuvel

Thomas van den Heuvel

01/06/2016 22:03:34
Quote Anchor link
Zelfs als je niet expliciet ob_start() etc. gebruikt heeft PHP intern verschillende buffers/lagen waartussen gecommuniceerd wordt. Hoe meer je opspaart/mag opsparen hoe minder vaak er geflusht wordt van de ene buffer naar de ander.
 
Ozzie PHP

Ozzie PHP

01/06/2016 23:50:39
Quote Anchor link
Ik snap even niet wat jullie precies bedoelen. Als je (bijv.) het mvc-model hebt dan render je pas op het allerlaatste moment je view (de complete pagina). Bedoelen jullie dat je tussentijds al iets naar het scherm kan sturen?
 
Ben van Velzen

Ben van Velzen

02/06/2016 00:15:58
Quote Anchor link
Het kan wel, maar zeker binnen MVC moet je daar even wat meer voor doen. Het is vaak de moeite niet, want de winst is in milliseconden, al kan de winst in de DOM al snel hoger oplopen, afhankelijk van hoe groot je pagina is.
 
Ozzie PHP

Ozzie PHP

02/06/2016 00:19:20
Quote Anchor link
Maar wat is dan het principe precies? We bouwen de header op en die flushen we? En daarna gaan we verder met de rest van de pagina?
 
Ward van der Put
Moderator

Ward van der Put

02/06/2016 08:29:50
Quote Anchor link
Dan sla je een paar stappen over, waaronder:

Afbeelding

Bad performance kills good sites. Je kunt beter éérst een cachingstrategie uitstippelen, voor server én client. Dan kom je er misschien ook achter, afhankelijk van de gekozen strategie, dat je een Content-Length header nodig hebt voor een persistent connection. En dat is best lastig: de lengte van content bepalen als je die content nog moet genereren. ;-)
 

Pagina: « vorige 1 2 3 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.