Performance Engineering and Tuning


language: EN

                  WEBVTT
Who's is this one, this is yours.
Yes.
This one.
Okay, so you unnumber, which one was the issue?
If you do it from your machine, we'll be able to see whatever you're doing there.
Yeah, the rest won't make sense.
Then you don't create an index.
Okay.
It didn't work.
Yeah.
Let me quickly try it and see what's happening.
Hold on, hold on.
Okay, you can continue.
I wanted to get off that screen.
Okay, it is advanced SQL, correct?
Let's see if that...
Okay, cool.
Okay.
Okay, I think we can eat wireless to install this stuff, or it's going to take a bit
of some minutes to install.
Okay.
Let's see if that works.
Okay.
Let's see if that works.
Let's see if that works.
Okay.
Let's see if that works.
Let's see if that works.
Let's see if that works.
Let's see if that works.
Let's see if that works.
Let's see if that works.
Let's see if that works.
Let's see if that works.
Let's see if that works.
Let's see if that works.
Let's see if that works.
Let's see if that works.
right? And with hardware monitoring, you've got components like your CPU, your memory, your disk,
your network, you know, but also you can have things like your temperature, you know,
that you probably need to monitor. Most companies usually leave that to the data center guys
to do the monitoring, you know, but they don't realize that sometimes the temperature
of a server can actually cause issues. That's just an example. So with Windows,
you've got what you call performance monitor or perfmon, which more or less
takes, collects the real time data and some live data about the system performance at that time,
some data logging, and then customizable counters. So you can customize the counters
like your CPU usage, memory usage, descriptivity, network activity, and also you can set up
thresholds out there. Well, the below part is just how to have it up and running.
I wouldn't go through that. And then, as I said, some of the counters, CPU usage,
memory usage, disk IO, network activity, right? And
more or less, those are the things that you'd monitor in any basic, as a basic,
you know, and then in Linux, you've got what you call a NIDOS monitor.
A NIDOS monitor, we just developed by IBM. So one, it does the real time process,
resource monitoring, right? Which is like live monitoring. And then some geographical,
graphical and textual outputs, right? So you choose what you want. You want either graphic
or textual output. It also can generate logs that you can use later on. And then it does
a multiple system resource monitoring, which is more or less the same things. But when it comes
to this one in Linux, it also includes system processes, right? But more or less,
you can interact with the different resources that you want to monitor, like your CPU,
your memory, your disk, your processes, you know, when you're running to be able to have
the option of, you know, just the disk, for example, you want to monitor the disk,
so it will show you statistics of just the disk, right? But also you can log and then
log everything to a file, right? Or to, you send it to a file for further analysis,
maybe later on, you know, and you can actually give it for how many times should it do it,
how many times should it run, how many times should it log. So for example,
they, on that red command, it's saying log data every 60 seconds for 720 intervals,
which means it's 12 hours. So every 60 seconds, every one minute, it has to log information
onto it, you know, and the common metrics that obviously will be monitored, the normal ones,
your CPU, your memory, your disk, or your network, right? Which obviously then helps you
to be able to see what could be happening exactly, right? So your default output,
for example, if you press C for CPU, right, you get the percentage of time the CPU spends
on a user process, and you get the percentage of CPU time spent on system or kernel processes,
right? You also have things like your waiting, what time the CPU spends waiting for I.O.
operations, like accessing the disk, for example, or the network. It will show you that,
or some idle, not executing any process, it will also show you that time. Also this time
the CPU spends handling hardware interrupts, and sometimes it's sometimes spent on software
interrupts. So it sort of gives you a whole lot of times that are happening, which you can be
able to use to determine what could be happening, you know? Time the CPU spends on tasks not
visible to the host OS, you know, maybe due to virtualization or something like that,
you know? So those are some of the stuff that you can be able to see. But when you see
high percentages in places like wait time, right, for I.O. operations, wait time for
system or kernel processes, you know, you should worry about it because then there's something
that's holding it. It should be quick. Those operations should be quick. It shouldn't take
time, you know? And then when you look at memory, you look at the total amount of memory
in the system, and then you look at the used, the amount of memory currently in use, the free
memory, and then the shared memory between processes, you know, especially when they're
used by shared libraries, and then your buffers, memory used to block I.O. caching,
memory used by cache itself for storing frequently accessed files, right? Remember the
in-memory cache? And then swap space used. It also shows you that, which would then help
you to look at what is it that you can change. Then you also have VM start. When you have
a virtualized environment especially, VM start, you monitor your virtual memory statistics,
your CPU activity, your disk I.O. paging and processing. Did your colleagues come?
Or is it?
Did you catch a bug?
And the tooth is not the, it's not the best. The other week when your colleagues were here,
I had to get a tooth taken out. So I took it out the Friday. They were coming over the
weekend, right? I took it out the Friday. But when they took it out, they didn't know
that there's some pieces that were left inside. So I would come in, I came in Monday,
Tuesday, Wednesday, and it was so painful. Like it didn't make sense. I would survive
on painkillers. I had to go back and so that they clean, you know, because it
wasn't healing even if I was on antibiotics, but still it wasn't healing. So they had to
go back and actually clean it, but now it's better. I took this, tooth is very painful.
I had Tramadol. Tramadol. Yes, Tramadol. Yes, they gave me Tramadol. I can always
drink one tomorrow, one thing. It's a very, it's a, it's a, it's a very powerful painkiller.
Yeah. But also it can, it can cause drowsiness. So he's going to sleep.
Yeah. And after are they going to come? Are they going to come here? Oh, they only
leave him from, okay. Okay. But Tramadol, Tramadol is a good one. And the only other
issues, he might not get it over the counter, but for over the counter, you can look for one
that's good. You can buy grandpa. It's called grandpa. Yes, grandpa. Yeah. You can even get
it at a, at a garage. It's a, it's a very good painkiller. Like it's, it's very good. We,
we usually, we use it a lot when we are hungover because it takes care of the headache,
takes care of the pains. But for now, until he gets home to get it removed, if he's
getting it removed, he can buy grandpa. It usually subsides in a few minutes.
Yeah. All right. Cool. So then with, with VM start, you get your,
things like your CPU activity for your virtual machine, your IO, your paging, you know,
and you get real time, obviously performance, historical data, you can track back over time
um, by running VM stats and intervals. So like three minutes or five minutes, you need to
log every one minute or something, you know, um, you can be able to do that. And then
the output of VM stats, usually it's prox, which is the processes, um, waiting for memory
in the running state. And then information about the physical memory usage, right. Uh,
include free memory, subspace and buffers, and then swap information about swap your
disk IO, your number of interrupts and contact switches, and then your CPU usage.
Uh, that, that example is not as clear as I've wanted it, but on the exercise,
you should be able to see it right. And just some explanation on the columns for VM
stats. So your prox, your processes, um, where it says R is the number of processes waiting
for time run for runtime, right, ready to run. And then where it's B, it's an, um,
number of processes, an uninterruptible slip. They are waiting for IO, right.
When you get to the memory section, there's, there's your swap, there's your free,
there's your buffer, there's your cache, of which I think we are familiar with it.
And then the swap, we've got the SI, which is the memory swapped in from disk and SO memory
swapped out of disk. And then you've got the IO. So number of blocks received from a block
device, which is the reads and number of blocks sent to a block device, which is the writes.
And then we've got the system where you've got number of interrupts per second. Um,
and then context, number of context switches per second. And then your CPU obviously has
all those, all that information, CPU time spent in user space, system space is spent idle.
You know, most of these tools more or less talk about the same thing. If you look at it,
you know, they more or less talk about the same thing. The common metrics you monitor
in, um, using VM stats, your memory, your CPU, your IO, your processes, you know,
that's, that's more or less it. I think with, with, um, with,
with these tools, it depends which one works for you.                

on 2024-12-04

Visit the Performance Engineering and Tuning course recordings page

3 videos