Static file serving Plain Text
11:09:01 OdiliTime n-tech: m only serves static files right? 11:09:02 mona now can we get rid of OdiliTime? 11:09:14 OdiliTime I'll leave, I'm just trying to help 11:09:14 @n-tech yes 11:09:36 OdiliTime has any one else seen slowness on m serving files? 11:09:40 @n-tech yes 11:09:46 @n-tech it does have to connect to pgsql though 11:09:50 @n-tech I wonder if that's it 11:10:02 OdiliTime why, postgres to serve static? logging files? 11:10:02 @n-tech it has to use pgsql to redirect requests 11:10:09 OdiliTime ah redirect map 11:10:11 @n-tech because it can't know where a file is located 11:10:11 @n-tech yea 11:10:13 OdiliTime can you just write it to file 11:10:18 OdiliTime and have it operate off the file 11:10:25 @n-tech It shouldn't be having any problems 11:10:29 OdiliTime and just refresh file in cron every 5 minutes 11:10:39 OdiliTime HUP nginx to reload 11:10:47 OdiliTime yea m really shouldn't be 11:10:52 JB i was going to suggest inserting a microtime var at the beginning of the script and check the elapsed microtime at the end of the script by logging it to newlines in a txt file, if the average value is on the large side then you know that is where the bottleneck is, then you concretely know the solution is one of two things, either increase max_children or further optimize the script [...] 11:11:11 @n-tech we already do this 11:11:25 @n-tech it loads between 80ms and 900ms 11:11:39 @n-tech I can see precisely how long queries take and how long the entire script takes 11:11:41 OdiliTime so nginx isn't directly communicating with postgres 11:11:45 @n-tech 90% of load time is waiting for phpfpm to pick up the phone 11:11:48 @n-tech no? why would it 11:11:49 @n-tech how would it 11:11:56 ranix hmm 11:11:56 OdiliTime my misunderstanding 11:12:20 OdiliTime you said m.8ch.net has to connect to pgsql 11:12:28 OdiliTime thought that meant on every request 11:12:40 ranix n-tech: are you doing anything dumb like trying to use gz compression for inter-process communication on the same server 11:12:59 OdiliTime you going directly to postgres or do you have a postgres proxy pool 11:13:03 @n-tech I have no idea how I'd check for that but I don't think so 11:13:13 @n-tech we have pgbouncer but the debug bar shows queries take 30ms tops 11:13:17 @n-tech but usually under 1ms [...] 11:13:20 OdiliTime ranix: you mean like on the postgres connection? 11:13:23 @n-tech i've also repeatedly ruled out pgsql 11:14:28 Drybones something fucky is happening on m.8ch.net 11:14:45 OdiliTime yea m.8ch.net is the key 11:14:53 OdiliTime static file serving taking 40s 11:14:54 ranix OdiliTime: I was thinking about the builtin nginx compression but that seems to be for outbound stuff and you'd see a resource hit 11:15:11 OdiliTime ranix: his nginx does gz the web traffic 11:15:34 JB well from the wc -l check earlier, we know you have 16 child processes, and each request takes 80-900 ms to complete (so an average of 490 ms), so requests handled per second is capped at (16 processes * 490/1000 seconds), so 7.84 requests per second, meaning if you start receiving a steady 8 requests per second or more, php will eventually uncontrollably bottleneck as the unfulfilled requests start queueing 11:15:45 ranix OdiliTime: can't be the problem anyway because the cpu would peg not be idle 11:15:54 JB so you need more child processes 11:15:54 OdiliTime ranix: yea 11:16:11 OdiliTime static file serving shouldn't be 40secs 11:16:30 ranix how well do you guys know bsd 11:16:35 JB i thought he said m.8ch.net is different box 11:16:40 JB +a