My school taught this sort of thing in the general CS classes, before everyone split off into their own branches. I think this sort of question would be a great thing to ask web developers. They should know it even if they don't always use it.
Really? They should be able to look at that code snippet plus performance results and say, "Oh, that's probably the result of cache hash collisions caused by the way the memory was allocated." That's harsh.
Edited to add: So you'd be ok with your next interviewer asking you to use the method of Frobenius to solve an ordinary differential equation, because, "hey, I had to learn that as part of my CS math prerequisite courses, so you should know it too, even though you're just interviewing for a web dev job?"
They don't need to know the exact cause, but they should certainly be able to look at that code and say, "well that's rather weird. my guess is cache weirdness". I don't think being able to identify the ballfield that the answer is in is too much to ask. Identifying that sort of problem is sophomore or maybe junior level stuff. Figuring out what exactly is causing it and therefore how to solve it I would consider bonus, and wouldn't expect it.
Differential equations was not a part of my CS curriculum, but I imagine it would be fair game for any engineer. I would not expect them to solve the answer for me on a whiteboard right there, but I don't know what the equivalent to "simply identify what the question is" would be in this case.
I hope all interviewers are not like you. Not every web developer comes with a rigorous CS background. Some very excellent web developers I know come from various backgrounds and are good at what they do because they understand web development itself really well even though they may not know low level compiler and OS stuff.
It's always better to align the interview with the job (and future tasks they may be involved in), not some idealized CS background that you think everyone should have.
I find it hard to believe that somebody with no knowledge of "low level compiler and OS stuff" that did know the basics of caching (generalized) and had strong problem solving skills (which all developers regardless of specialization should have) would have a hard time puzzling something approximating a correct diagnosis.
I think that you are not giving your average "web developer" enough credit.
Funny, I don't even have a high school diploma much less a degree of any kind, and I instantly knew it was probably cache weirdness. Do yourself a favor, drop the obsession with formal CS curriculums, they're not a hallmark of competence.
My point is that this isn't an unreasonable thing to expect people to know, as evidenced by it being taught to undergrads. That you know it without a high school diploma strengthens my assertion that it is a reasonable thing to expect people to know.
This isn't about "formal CS curriculum", this is about a passing familiarity of modern computer architecture.