SymLinksIfOwnerMatch performance

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Freelance JAVA / C# Developer

Functieomschrijving Voor een opdrachtgever in omgeving Zoetermeer zijn wij op zoek naar ervaren JAVA of C# Developers die graag op projectbasis willen werken. Je komt terecht bij een informele developers club die mooie projecten uitvoeren voor grote klanten. Ben je een ervaren freelancer of werk je in loondienst en ben je toe aan een nieuwe uitdaging? Lees dan snel verder want wie weet is dit een leuke vacature voor jou! Het fijne van deze werkgever is dat je zelf mag beslissen hoe je te werk wilt gaan. Wil je als freelancer werken dan is dat OK. Wil je de zekerheid

Bekijk vacature »

Software Developer (Junior functie)

Functieomschrijving Wij zijn op zoek naar een Software Developer! Sta jij in de startblokken om je carrière te beginnen en kan je niet wachten om toffe software te gaan ontwikkelen? Kortom, ben je onlangs afgestudeerd of sta je op het punt om je papiertje te behalen? Voor een IT dienstverlener dat gespecialiseerd is in Microsoft technologie zijn wij op zoek naar C#.NET Developers. Het bedrijf heeft meerdere klanten in regio Utrecht waar je permanent kan komen te werken. Kom je liever te werken bij een klein softwarebedrijf of bij een groot consultancy bureau? Dat is helemaal aan jou de keuze!

Bekijk vacature »

Functioneel Applicatiebeheerder

Wij van CNB zijn op zoek naar een leergierige Functioneel Applicatiebeheerder CNB is de grootste dienstverlener in de markt van bloembollen en vaste planten. In deze markt verricht CNB de volgende diensten: bemiddeling, veilen en het koelen en prepareren van bloembollen. Vanuit ons hoofdkantoor in Lisse werken bijna 100 collega’s dag in dag uit aan de bemiddeling van bloembollen. In Bovenkarspel vindt het koelen en prepareren van de bloembollen plaats. Wij zijn op zoek naar een enthousiaste Functioneel Applicatiebeheerder die naast een applicatie, ook sfeer kan bouwen! Jij: Vindt het leuk om binnen een klein IT-team aan de slag te

Bekijk vacature »

PHP Software Developer

Functie omschrijving PHP Software Developer gezocht! Voor een organisatie in de regio Zeist die zich bezighoud met het verbeteren van de medicatieveiligheid zoeken wij een Software Developer. In deze functie zijn wij op zoek naar een slimme en enthousiaste Developer die interesse heeft in farmacie, logistiek en ICT. Daarnaast beschik je over een goed analytisch vermogen en ben je van nature gestructureerd en resultaatgericht. Je moet in deze functie daadkrachtig, flexibel en communicatief goed zijn. Je verantwoordelijkheden bestaan uit: Object georiënteerd programmeren; Werken in een scrumteam aan de ontwikkeling van een medicatiebewakingssysteem; Meedenken over de mogelijkheden en onmogelijkheden van projecten;

Bekijk vacature »

Software Developer

Functie omschrijving Psst hé jij daar! Op zoek naar een nieuwe uitdaging als developer? Wacht niet langer en reageer direct. In deze functie ga je bij een familiebedrijf werken als developer. Je gaat maatwerk software ontwikkelen met de Microsoft stack. Je gebruikt technieken als C#, ASP.NET en MVC. Je werkt in een leuk team van andere developers. Je krijgt veel vrijheid in je werk en kan flexibel werken. Dagje thuiswerken? Geen probleem! Daarnaast is er veel ruimte om écht mee te denken met het bedrijf en met de klanten. Bedrijfsprofiel Deze organisatie is gevestigd in de regio van Boxtel. Vanaf

Bekijk vacature »

C# .NET Backend Developer HBO Javascript

Samengevat: Deze werkgever is een professionele speler op gebied van IT en E-Commerce. Wil jij werken voor een e-commerce platform? Heb je ervaring met C#, Javascript en Scrum? Vaste baan: C# .NET Developer Backend E-Commerce 3.400 - 4.500 Backend Developer Wij ontwikkelen software voor E-Commerce toepassingen. Ons eigen Content Management systeem biedt een integrale oplossing met diverse ERP software. Onze systemen zijn vaak complex en omvangrijk en draaien bij grote organisaties. Maar ook kleine ondernemingen hebben steeds vaker behoefte aan een vlekkeloos werkende E-Commerce oplossing. Zij bieden een uitdagende werkomgeving met gezellige collega's. Je krijgt veel vrijheid en er is

Bekijk vacature »

Senior PHP Developer

As a Senior PHP Developer at Coolblue, you ensure that our webshops work as optimal as possible and you choach other colleagues on the hard and soft skills. How do I become a Senior PHP Developer at Coolblue? As a PHP Developer you work together with other development teams to make our webshop work as optimal as possible and to make our customers happy. Although you are a PHP Developer, you are not averse to a little TypeScript or other technologies that might be used. Would you also like to become a PHP Developer at Coolblue? Read below if the

Bekijk vacature »

Software Developer / .NET / Azure

Dit ga je doen Als Lead .NET Software Developer zal je je bezig houden met: Het vertalen van bedrijfswensen naar een technische roadmap; Uitwerken van nieuwe architectuur / designs; Het team aansturen en motiveren; Toezien op de kwaliteit van de code; Mee ontwikkelen van nieuwe features en applicaties. Hier ga je werken Deze organisatie is op dit momenteel marktleider in het ontwikkelen van productielijnen voor de voedselindustrie en heeft een wereldwijd klantnetwerk. Binnen deze organisatie is het team van software developers dagelijks bezig met het ontwikkelen van maatwerk oplossingen om alle productiemachines aan te sturen, maar ook bedrijf kritische applicaties

Bekijk vacature »

C#.NET ontwikkelaar

Functieomschrijving Voor een gewaardeerde werkgever in regio Tilburg zijn wij op zoek naar een C#.NET ontwikkelaar. Je bent verantwoordelijk voor het ontwikkelen van dashboards, webapplicaties en apps voor de eigen IOT-oplossingen. Samen met een vooruitstrevend team van ontwikkelaars en engineers krijgen jullie de opdracht om de sensoren in de apparatuur te scannen en vervolgens de data om te zetten in belangrijke inzichten voor de klanten. Taken en verantwoordelijkheden: Heb jij ideeën over nieuwe technieken die jullie kunnen implementeren? Hier wordt echt naar je geluisterd en gekeken of jouw idee daadwerkelijk ingezet kan worden; Je gaat aan de slag met de

Bekijk vacature »

Full stack Python developer

Functie Samen met andere collega’s (een product owner, een software manager en een ervaren ontwikkelaar) ga jij onze producten verder ontwikkelen. Jouw verantwoordelijkheden zullen bestaan uit: – Verder wil gaan met de ontwikkeling van onze bestaande producten; nieuwe features! – Meedenkt over de roadmap van onze producten – Als sparringpartner kan optreden op het gebied van development – Zelf ook nieuwe ideeën op tafel durft te leggen en deze van scratch af aan wilt bouwen Hieronder ook een paar voorbeelden van projecten waar we momenteel mee bezig zijn of binnenkort aan willen beginnen: – Real-time interactie creëren in onze web

Bekijk vacature »

PHP Back-end Developer

Vacature details Vakgebied: Software/IT Opleiding: Starter Werklocatie: Nijmegen Vacature ID: 13633 Introductie OUr client develop websites, webshops, and digital environments that are used by many visitors daily. They are seeking an experienced PHP-Developer Back-end to join the team. If you're looking for a position where you can tackle challenging, innovative, and multidisciplinary ICT projects and make a difference, this vacancy might be for you! Functieomschrijving As a PHP developer, you'll develop websites and digital environments used by many visitors daily. You'll work as a back-end developer and want to continuously develop in this field. You can work independently and efficiently,

Bekijk vacature »

Lead Webdeveloper

As Lead Web Developer at KUBUS you are responsible for the implementation design of requirements and the software architecture of the web application and services of BIMcollab. In your role as lead developer you will naturally search for the optimum between the required implementation time, the performance of the application and a fast go-to-market of features, in line with our automated test and release train. Together with the other senior developers in your team you monitor the architecture of the application and you advise the product owner about necessary refactoring to improve the maintainability of the platform. Our development team

Bekijk vacature »

Junior .NET developer

Functie Jij hebt natuurlijk net jouw Bachelor op zak en gaat nu voor het eerst aan de slag bij een werkgever als junior .NET ontwikkelaar. Waarschijnlijk lijkt het jou spannend om ineens aan de slag te gaan bij klanten in de consultancy. Maak je niet druk, jij komt hier terecht in een warm bad en wordt totaal niet in het diepe gegooid. Zodra jij hier begint wordt jij gekoppeld aan een persoonlijke manager met een persoonlijk ontwikkelplan. Jij krijgt een scala aan trainingen, denk aan trainingen ten behoeve van het opdoen van zelf kennis en gedragscompetenties, maar ook trainingen voor

Bekijk vacature »

Low Code Developer - Consultant

Functie omschrijving Wil jij fungeren als een spin in het web en samenwerken met klanten? Voor een leuke en interessante opdrachtgever in omgeving Leiden zijn wij op zoek naar een Low Code developer die zich bezig gaat houden met het optimaliseren van bedrijfsprocessen bij klanten en het leiden van projecten. Ben jij toe aan een nieuwe uitdaging en heb jij verstand van datamodellering en NO CODE Platformen? Lees dan snel verder! Bij deze rol horen de volgende werkzaamheden: Je gaat geen code kloppen maar bedenken hoe applicaties eruit moet komen te zien. Je gaat werken met een non code platform,

Bekijk vacature »

Cloud Engineer

Ben jij een ervaren Cloud Engineer die complexe omgevingen kan overzien en wil je graag in vaste dienst werken bij een professioneel en kleinschalig bedrijf waar je een belangrijke rol kan spelen? Wij, IntelliMagic in Leiden, ontwikkelen specialistische IT monitoring software die we als SaaS oplossing verkopen aan grote bedrijven in Europa en de VS. We zijn een Nederlands bedrijf met een goede sfeer en met grote waardering voor de persoonlijke inbreng en kwaliteiten van onze medewerkers. Wij zoeken een ervaren Cloud Engineer met academisch denkniveau die verantwoordelijk wordt voor het beheer van de cloud infrastructuur voor onze Europese klanten.

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

19/05/2024 21:30:03
 
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.