PC RAM unusable and flatlining. As is CPU. Movies failing to play

I have an old PC I turned into a media server. It has a dedicated graphics card, and should by all accounts do what I want.

I'm struggling with transcoding via Plex (I can perhaps understand that), but even playing directly on my machine, local video files of all kinds skip and streaming video is also bad.

Windows is reporting that it's only using 3gb of the 4gb of memory installed. When playing a 720 video file I noticed that my ram and CPU was peaking at around 50% utilization.

Screenshot

How can I troubleshoot the poor performance and memory limitations?

Note: I have tried everything here to no avail regarding usable memory. Both sticks seem to function at 2gb on their own, in either slot.

  • Win 10, 64
  • Intel(R) Core(TM)2 Duo CPU E4600 @ 2.40GHz
  • 4gb Ram DDR2 667
  • Gigabyte 945GCM-S2L
  • ATI Radeon HD 2600 XT - "Excellent HD video image quality - CNET"
  • Crucial C300 SSD

My full specs from CPU-Z


Solution 1:

Your memory issue is a chipset limitation. The 945G's address decoder only supports a 4GB address space, so anything else that has to go in low memory (such as device mappings) reduces the RAM available to the OS.

The (G)MCH provides a maximum main memory address decode space of 4 GB (2 GB for the 82945GC/82945GZ /82945PL). The (G)MCH does not remap APIC or PCI Express memory space. This means that as the amount of physical memory populated in the system reaches 4 GB (2 GB for the 82945GC/82945GZ/82945PL), there will be physical memory that exists yet is nonaddressable and therefore unusable by the system. -- 945G chipset specification

Your BIOS is pretty old and probably reserves 1GB for low device mappings just to make sure it has enough space. This is probably more than is needed and there might be a BIOS option to change it, but it's not that likely because at the time your BIOS was developed, this wasn't a significant concern. Neither 4GB systems nor 64-bit OSes were common on mid-range consumer systems.

... Or that only half (1.6) of the 3gb usable (of 4gb installed) is being accessed ...

You're misunderstanding this number. All of the usable memory is being used, except for a very small amount that has to remain free in case interrupt handlers require memory. The 1.6GB is primarily the amount that's being used to directly service application requests, and the system can't use more for this purpose than the applications request. The balance is used for other purposes such as caching.

The CPU issue is because the program you are running is only using a single thread at a time to do its computationally-intensive work. One thread can only run in one core at a time. So the maximum load it can place on a dual-core CPU is 50%. Depending on what program you are using and how you are using it, you may be able to get it to run in a multi-threaded mode that let it take advantage of more than one core.