This blog contains experience gained over the years of implementing (and de-implementing) large scale IT applications/software.

Intel CPU Flags from dmidecode on Linux

If you run the dmidecode command on a Linux machine, you get a nice list of the Intel CPU flags for the CPUs on your machine, plus a handy text description:

FPU (Floating-point unit on-chip)
VME (Virtual mode extension)
DE (Debugging extension)
PSE (Page size extension)
TSC (Time stamp counter)
MSR (Model specific registers)
PAE (Physical address extension)
MCE (Machine check exception)
CX8 (CMPXCHG8 instruction supported)
APIC (On-chip APIC hardware supported)
SEP (Fast system call)
MTRR (Memory type range registers)
PGE (Page global enable)
MCA (Machine check architecture)
CMOV (Conditional move instruction supported)
PAT (Page attribute table)
PSE-36 (36-bit page size extension)
CLFSH (CLFLUSH instruction supported)
DS (Debug store)
ACPI (ACPI supported)
MMX (MMX technology supported)
FXSR (Fast floating-point save and restore)
SSE (Streaming SIMD extensions)
SSE2 (Streaming SIMD extensions 2)
SS (Self-snoop)
HTT (Hyper-threading technology)
TM (Thermal monitor supported)
SBF (Signal break on FERR)

Virtualisation Conundrum

Whilst researching ideas for using my VMware ESXi test rig, I came across this blog site: https://weinshenker.net/blog/2011/07/26/oracle-redhat-vmware/
I’ve added it to my Fav’s as a *must read* once in a while.
It’s packed with some very interesting articles concerning Linux, Virtualisation and more importantly, Oracle.

It may have changed my mind about using Oracle Enterprise Linux.  I’m considering shifting up the Linux tree to RedHat, or experimenting with Fedora.

See the Wikipedia tree diagram https://upload.wikimedia.org/wikipedia/commons/8/8c/Gldt.svg on the right of the Wikipedia Linux Distro page.

Running Oracle (Windows vs UNIX/Linux)

For most of my IT career I’ve been using UNIX/Linux (let’s call this ULix to save my fingers) to run Oracle.
Humans are creatures of habit (like cats https://www.simonscat.com/) and so why would I want to change this.
Running Oracle on ULix is a measured quantity.  It works, it’s reliable, you can tune it and then you can really tune it.

Whilst browsing my book library I came across a book I’ve had for years:
Configuring & Tuning Databases on the Solaris Platform” by Allan N. Packer
If you have ever wondered what the possibilities are in tuning an Oracle system on ULix, then read this book.  It might be old, but it’s a good one, and it establishes all the basic principles of tuning.

Now if we were to consider running Oracle on Windows (https://www.dba-oracle.com/art_builder_linux_oracle.htm), then out-of-the-box (https://www.ukrapmusic.com/mixtapes/717-rootz-sparka-presents-out-of-the-box) it would work perfectly fine.

Microsoft have made vast improvements to the monitoring/tuning capabilities in newer Windows Server versions, but I don’t think this can compare to the flexibility of monitoring/tuning in ULix.
I find it very difficult to profile a database on Windows.
Think about it, where can I see the individual shadow processes (https://cavyspirit.deviantart.com/art/Don-t-Mess-with-Shadow-Process-194711067) at the OS level?

On Tanel Poder’s company’s website, there’s a great whitepaper “Understanding LGWR, Log File Sync Waits and Commit Performance”.
In this whitepaper, Tanel mentions monitoring and tuning the Oracle log writer (LGWR) process to get better CPU time.  I thought to myself, how would someone do this on Windows?

I really don’t think you can.
To summarise: I like Windows, it can run Oracle RDBMS perfectly fine, but it’s not as flexible as running on ULix.