Exploration basics

[00:00:00] Mark Tomlinson: So before we go any further, I'd like to just do a little bit of a review of the exploration basics. Clearly in performance, we have physical resources, so just to jog your memory on this, we have CPU, disk, memory and network. Those are the core physical resources at the base layer of any computer system with those resources were able to manipulate data. So that's would be processing or transformation. That's something that the CPU is responsible for doing in processing instructions. Were actually moving data, so that would be IO network memory, bus internal to the computer, external to the computer, moving things around inside a computer. And we're storing data and we're going to review these three states and data states in in in how you use CPU, disk, memory and network to manipulate data, move data and store data. [00:00:52][52.1]

[00:00:53] Now, above the physical resources, you have what I call logical resources, meaning they aren't tied to physical computing, electronics and actual defined substrate medium within a within a motherboard or something like that. So take like the operating system configuration. Now, physically, the machine may have 18, 19 gig, just some random number. It's got eight gig of RAM, but you configure the operating system to only use four gig of that ram. So you have more physical resource than you do logical resource just because of some setting something in a configuration file of some sort. Right. Then you have platform or framework configuration, this could be on top of the operating system, you're running dotNet or Java or another a Lamp stack, any kind of other framework or a platform could be a queuing mechanism, something like that. And there are parameters and configurations that govern how many connections, how many threads can run, how long the threads can run, how long a session exists. [00:01:57][64.1]

[00:01:58] These are like logical configuration parameters. And and that's where you have a logical configuration on one hand and physical configuration on the other. And then you can have apps built on top of a platform, on top of a framework, on top of the operating system, on top of the physical resources. And that would be application specific configuration, including things like licensing, like I have plenty of hardware, plenty of plenty of I can move plenty of data. I have plenty of resources. Physically, the operating system can handle this. I just don't have enough licensing or there's some setting within the app that governs how many sessions or how many connections database connection pooling is is similar to that from a client perspective or the application has some we can only process a number of logical entities. [00:02:46][48.0]

[00:02:47] Exactly. So if physical resources and logical resources and then you have what I call abstract resources, abstract resources are things that you can't code into a computer. You can only code around them. One would be time. We can't control time. We can't, we can't say, oh, by the way, just go to the database and bump up the amount of time, 25, 28 hours a day. You can't just create more time, but we can measure and we can use efficiently the measurement of time or the elapsed time of a given function. The other thing is that's abstract to some extent, even though it's physical, is to think about demand or usage. And that's that's traffic or the abstract concept of we know that there will be usage of the application, the system, the physical resources, and there's demand. We just don't know potentially how to measure exactly how much demand and we don't know at what point that demand will overwhelm the system. [00:03:46][59.2]

[00:03:47] So in a way, it's you know, it's concrete. It has a source. Demand or usage comes from activities of real people in the real world. But the idea is that the demand or usage is something abstract. There you go. I'm on a OSX and I'm just running a top command, right? So at a command line, I'm basically looking at physical resources. This is a tool that monitors some of the physical resources and a few logical resources. So I can show you a couple of things here. One, as this is updating, we can see their CPU resources, right? So CPU usage is three point seven percent. The system is using 11 percent, but it's about 90 percent idle, you can see at the top. Right. So that's pretty cool. CPU, that means how much time is the CPU spending, manipulating data? Right. There's also some memory stats in here. You can see memory regions, the physical memory. Right. So I'm using about 15 gigabytes of physical memory. Very interesting. [00:04:48][60.9]

[00:04:48] Another so I've got memory, CPU and memory and then I've got a network in the top command. Very simple here. We can look that network packets, moving network packets in and out. So I have CPU memory and network packets. Now I'm moving stuff around and the other IO request is disk. So you can see I'm reading writing bytes. So even in the simple top command you have the core for resources, CPU, CPU usage. Right. You've got memory. Physical memory, you've got disk, and you've got network, right? They should be able to run this on top, can run on any Linux kernel, so in OS, X kernel cetera, and you see a lot of the different processes and details of everything that's running down on the table. And most people might be blown away from this. [00:05:42][54.1]

[00:05:42] But the idea is I also have a on top of those for physical resources. I actually have a couple of other logical resources, logical resource meaning operating system, platform and framework or the actual app. Now, the operating system has this thing called a process. Right. So this gives me a little information about how many threads are being run with how many and how many processes. So I can look at threads and processes. I can look at virtual memory, which is sort of swapping and swap out in the virtual memory space in the operating system, even though the physical memory would be, you know, actual DIMMs on the piece. And then you can look at some other libraries and things that are sort of in the operating system as it's able to run. So you can see the basics of memory in the regions that are used for physical memory. But you can start seeing a little bit about the logical processes, 450 logical processes. [00:06:36][54.1]

[00:06:38] You can see various different ones. I got some Java processes running. Google Chrome is running in the background and stuff like that right now. If you're not on a Linux machine of some kind. Right. Or an OSX. So if you're in a Windows box, one of the easiest ways to get there is to I'm right clicking down on the bottom. I go to something called the task manager and the task manager. You can go to a performance tab. And in Windows, it's much the same kind of Roll-Up and wouldn't you know it, CPU Disk, Memory Network. [00:07:09][31.1]

[00:07:10] Those four core resources are in every operating system that you can get your hands on. And if you want to go even deeper, you know, you can go open the resource monitor and actually dig even deeper. Come on, buddy. Right into what this what the actual pieces are doing, so if you go want to really see similar to what was happening at. You can see there I've even got Chrome running their performances, running some of the old Windows stuff as you've seen this, and it'll break down what's happening in the CPU the same way it did in Linux. And these are the core tools, like if I come back over into a Windows, into an apple box down in OSX, let's look at the activity monitor. So now in one little windows, CPU, disk, memory network and power. Right. [00:08:06][56.1]

[00:08:07] So we can see all sorts of interesting things. So that's just a review of the basics of what you're going to use to explore performance physically, logically, and also analyzing time. How much time is spent in CPU here? The kernel has been running on my Mac for eight plus hours. There's a Windows server running, meaning that's the GUI window, Google Drive has been running. So you can see how much time is spent in each of these tasks. And you can see on the network how many things are sent and received per second data received per second set, received per second. And so when you're exploring performance, keep in mind as a refresher, these are the basic core elements. [00:08:07][0.0]

Comments are closed.

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}