[On Linux versions of iostat], some people put a lot of faith in the %iowait metric as an indicator for I/O performance. However, %iowait is first and foremost a CPU metric that measures the percentage of time the CPU is idle while waiting for an I/O operation to complete. This metric is heavily influenced by both your CPU speed and CPU load and is therefore easily misinterpreted.
For servers, you should be sending your iostat statistics to an internal data collection and graphing service, so you can get an idea of a baseline over time. You can then try and correlate spikes in disk I/O with other data, such as slow web site performance, database queries, etc.
I was trying to figure out why Safari’s Reader animation was smooth on my retina MacBook display (“1680×1050”), and super smooth on my old iPad Pro (1668 x 2224), but jerky/stuttering on my USB-C-connected external 4K monitor in any resolution except “1280×720”. This even happened on simple web sites with very few photos.
Pushing high-res external monitors primarily depends on VRAM size and bandwidth. Integrated graphics have to use system RAM as VRAM which is slower compared to dedicated VRAM. If you only had 8GB system RAM then the shared VRAM would further strain the entire system since less system RAM is available to apps.
Now, the new G7 graphics have more computational performance and are coupled with faster 3733 LPDDR4X system RAM which provides more bandwidth so performance on an external display should be at least somewhat better. However, a discrete graphics card would bring much more improvement. So if pushing high-res external monitors is your goal, I’d recommend you either 1. upgrade to a 16-inch MBP or 2. get a eGPU.
On long web pages, especially when using a high resolution (4K+) external monitor, scrolling takes a long, long time. Feels like you’re dragging the page through molasses.
I found a quick fix for this, buried in Accessibility preferences:
Open System Preferences > Accessibility
Scroll down to Pointer Control
Hit Trackpad Options… and move the Scrolling speed slider to Fast.
Why this isn’t in Trackpad preferences, I don’t know. It used to be, back in 2011. I guess Apple decided the Trackpad preferences were getting too overloaded and hid them deep in Accessibility settings.
I was going to write a tcpdump tutorial to help myself learn it again. Then I found Daniel Miessler already did it, with wonderful style and formatting. Recommended.
What’s missing from Daniel’s tutorial is how to interpret the output depending on your situation. Kind of hard to write, since there are virtually unlimited network trouble scenarios! One place you might start is Netgate’s list of practical troubleshooting examples. This shows how to troubleshoot port forwarding not working, IPsec tunnels not connecting, and outbound NAT configuration.
I also wanted to know how to diagnose dropped packets in tcpdump. It simply prints a summary of dropped packets at the end. (if you see this, you can try increasing the packet capture buffer size by passing the -B option to tcpdump)
I found there are many reasons for dropped packets, including but not limited to:
packets can go through hardware filtering, and still end up as not intended for the host (multicast)
NIC ring buffers can get full and be unable to cope with bursty traffic
CPUs receiving NIC interrupts can get too busy to process
NIC driver problems
MTU problems, jumbo frames, slightly oversized ethernet frames
“How much sense the output makes depends on how well you understand the protocols in question. tcpdump tailors its output to match the protocol(s) of the given packet. … There is no better way to learn how networks and protocols work than from watching their actual packets.“
I need to be able to explain the Linux boot process at work, so I’m going to outline it here. After the BIOS checks your hardware and lists bootable devices in the system, here’s what’s loaded:
Boot Loader: Presents you with a list of operating systems or kernel configurations to load. (Example: Master Boot Record + GRUB)
Kernel: The selected kernel, if compressed, decompresses itself. start_kernel() is called, which sets up interrupts, memory management, and device drivers. Then the idle process and scheduler are started.
Init: Establishes and operates the user environment. A series of scripts or config files are executed by systemd or upstart. User space services are started. For example, networking, a web server, and database services are started in this phase.
That’s the core of it. A few notes:
You may not actually need a boot loader if you have a UEFI system where the Linux kernel payload can be executed directly.
After init is complete, if you prefer to run in graphical mode, a display and login manager are started, and the session manager starts a session after you login.
On shutdown, init is called to terminate user space services. It then makes a system call to the kernel to shut the system down.
If you want to learn more about how Linux boots, I recommend Yogesh Babar’s book Hands-on Booting, which goes into the process in depth, along with troubleshooting steps for when it fails to boot. You can also check out the Wikipedia entries linked above.
Amazon just listed the Apple Watch Series 3 for $169 – on sale. This is a great starter watch for anyone interested in dipping their toe in the waters with Apple’s tech. (They will need an iPhone to use it, though.) Series 3 runs smoothly with watchOS 6, and will be supported by the upcoming watchOS 7. (which includes sleep tracking)
These watches actually come with blood oxygen detection built in, but it isn’t enabled yet due to FDA restrictions. Once the FDA eases their rules, this will be great for early detection of COVID-19-like symptoms.
It’s difficult to compare prices between doctors. Insurance providers have estimator tools, but the prices they give are often for slightly different procedures than the one you’re looking for. Even if they do have your exact procedure/test listed, the price ranges they list are usually outdated and nowhere near accurate.
One of my colleagues at work had a method he used to get more accurate price estimates. I’ve slightly modified it to fit my needs, and am listing it here in case it helps someone else:
Call doctor and get diagnosis and/or procedure/CPT codes.
Call facilities, get routed to billing, and ask for estimates.
Call insurance and also ask for estimates.
Pick facility and schedule an appointment. This may involve calling the doctor back to get a referral or move a referral.
Once scheduled, call again and ask for an estimate (since facilities are sometimes better able to provide estimates once your visit is scheduled.)
This is a lot of work, but may save you hundreds or even thousands of dollars.
Even if you think you might not be eligible, apply for financial aid anyway. Especially if you have a family. You might be surprised that you qualify. And apply before you pay your bill. It’s much tougher to get retroactive financial aid for a bill you previously struggled to pay.
Ask what the uninsured cost is. It can be cheaper than what would normally billed to your insurance, but then it doesn’t count towards your deductible either.
I tried the iPad-only life for months. Here’s what I found: The iPad gets you about 90% of the way to a laptop. It’s the last 10% of what you might need that is frustrating. For example:
You can listen to music, but if you want to easily trim that media so you only hear the best parts, the Music app on macOS is what you need.
Even if Safari identifies itself as a desktop browser, there are still sites that don’t fully work with it.
I had a PDF that was attached to an email that I was unable to rotate on the iPad without a paid 3rd party app such as GoodReader.
Another email attachment I wasn’t able to see in iPad Mail until I went to the cloud email portal (which barely worked on the iPad).
Tax software on the iPad is even more clunky, expensive, and data-loss prone than on macOS.
I was unable to change the text size of data entered in PDF form fields, thus making a printout of the form unreadable. Had to use a Mac.
My wife used to love her iPad Pro (it was a lot better than the Windows notebook that made her break down in tears), but now she’s selling it because she outgrew Swift Playgrounds. She wants to make a real app in Xcode.
You may say now that you don’t need to do these things, that these are all edge cases, but you will run into your own edge cases where the iPad falls down and get frustrated. Maybe in a few years, the software will be better. But I suspect the Mac will be best for most use cases for many years to come.