HNHacker News
TopNewBestAskShowJobs

tanelpoder

6,486 karma · joined July 15, 2018

A long-time computer performance nerd, creator of 0x.tools

blog: tanelpoder.com

submissionscomments
tanelpoder··on Why Paper Jams Persist (2018)
Also, cats on printers.
tanelpoder··on Cloudflare Images Now Available to Everyone
Great, thanks - I was unaware of such an option.
tanelpoder··on Cloudflare Images Now Available to Everyone
If I serve cloudflare images on my non-cloudflare hosted webpage, would the visitors still occasionally see the injected DDoS protection “checking your browser before accessing” page or would the images just fail to load then? Or is that browser checking disabled if just loading images?

That’s one reason why I haven’t checked out Cloudflare Pages, my (already statically hosted) website will unlikely be DDoSed and I wouldn’t want to impact user experience by adding random browser checks…

tanelpoder··on Oracle Cloud free tier – up to 4 ARM CPUs and 24 GB RAM free
In addition to the database PaaS services, the “always free” cloud infrastructure is this:

- 2 AMD based Compute VMs with 1/8 OCPU and 1 GB memory each.

- 4 Arm-based Ampere A1 cores and 24 GB of memory usable as one VM or up to 4 VMs.

- 2 Block Volumes Storage, 200 GB total.

- 10 GB Object Storage.

- 10 GB Archive Storage.

The ARM infra can be 1 VM with 4 CPUs/24 GB RAM or up to 4 smaller VMs.

tanelpoder··on Epic corporate jargon alternatives
Now do “leverage” -> “use”, please!
tanelpoder··on Do not use redirection characters in your shell prompt
Yep (author here), not pasting garbage into a terminal is the main point of this article. Partially, it's a rant against the way-too-trigger-happy "paste clipboard on right mouse click" terminals too.

I decided to finally write this article, after seeing a yet another "mysterious" case of a missing binary in some Oracle database server. Linux/Bash defaults are ok, but historically (coming from traditional Unix background?), people who engineer environments at least in the Oracle database server world, configure their prompts to some "corporate standard". And sometimes they end up suffixing prompts by a nice-looking ">" character, leading to this problem.

I've also seen someone set their root prompt to `root#>`. Since there's no space between the username and #, the "comment start" is not recognized and the redirection clobbering problem is still there.

tanelpoder··on Woice.me – async voice communication for teams: work, at your own pace
We built a similar app for asynch 1-1 & group voice chat (back in 2010 or so, it was called Voicee).

Found exactly the same thing (even when we/founders were developing it and knew how to use it). It's so much easier to keep blabbing and that will put the burden on the listener(s) to spend time & focus on playing it.

We didn't have audio transcription, so this may change the game a bit. So, if the sender can't (or doesn't want to) type at the moment, could reply to an otherwise text stream via voice. When we started, iMessage, WhatsApp didn't have asynch voice capability, but now they do - I guess having transcription always enabled would be a differentiator.

But in general (a request that I ignored for too long), you'll have to have texting capability in your app too, otherwise people will gravitate towards whatever allows them to read & type without distracting others with playing audio...

tanelpoder··on Procfs: Processes as Files (1984) [pdf]
I was updating my Linux Process Snapper /proc sampling/profiling tool [1] and ended up curious about when did this concept (examining process state via reading special files) first show up. Back in 1984 already, pretty wild! And, according to Wikipedia, it was first meant to replace the usage of ptrace() syscall [2].

[1] https://tanelpoder.com/psnapper/

[2] https://en.wikipedia.org/wiki/Procfs#UNIX_8th_Edition

tanelpoder··on Bitcoin's vast energy use could burst its bubble
Also, what happens when the power is out? Texas power grid was apparently a few minutes from completely collapsing recently, with some estimates that it'd take up to months to get it fully back online (and what does electricity cost around that time?). Or if a weather event seems too local, what about a major solar flare that takes out transformer capacity for years? (and it would be expensive for a long time). One could revert back to cash and gold without power, but bitcoin transactions?

Edit: I guess the summary would be that cash & gold are decoupled from electricity (even if it takes some to create/mine them), but Bitcoin's entire existence depends on continuous availability of (cheap enough) electricity.

tanelpoder··on Fake_contacts: Android app to create fake phone contacts, to do data-poisoning
Or just some form of "share only these contacts with app X" option at the device system/OS level.
tanelpoder··on Lenovo ThinkStation P620 Review: A Vehicle for Threadripper Pro
Yup, I totally get it. I had to tinker with power cables (the EVGA RTX 3090 required 3 x 8 pin power connectors). Also, cooling - I couldn’t get my hands on a blower-style RTX card, so the GPU just dumps its heat inside the chassis.

I also bought cheap “eBay memory” instead of the more expensive Lenovo offering and had to reseat DIMMs a few times to stop having ECC errors (the memory scrubbing feature is nice).

tanelpoder··on Lenovo ThinkStation P620 Review: A Vehicle for Threadripper Pro
I bought a RTX 3090 separately and it works in my P620 just fine.
tanelpoder··on Is Your Linux Version Hiding Interrupt CPU Usage from You?
(Author here). It would be interesting to test the performance difference. I downloaded the source of one of my distro-provided kernels & recompiled it with different config setting (to compare perf with just one thing changed), but got into some trouble with my drivers and ran out of time.

I would say that on your laptop, you probably wouldn't even notice a difference (as the "rdtsc" timestamp reading operations are pretty efficient & done entirely within a CPU). But with anything that can interact with external hardware million(s) of times per second (heavy SSD I/O in servers and moving large amounts of data over network), may see a minor (but measurable) hit.

In my experience, when large amounts of CPU gets used by interrupt routines (either hardware or software interrupts), that more likely indicates some bug or configuration issue in a device driver or even some faulty hardware issue.

edit: so, running "dmesg" and checking hardware health metrics (mceloc, EDAC) is a reasonable thing to do when interrupt storms & related CPU usage suddenly show up.

tanelpoder··on Is Your Linux Version Hiding Interrupt CPU Usage from You?
I guess the fence instructions are there for avoiding the CPU out-of-order execution getting the timestamp too early (or late) compared to the interrupt service routine's start & end?
tanelpoder··on Ask HN: Where do you put DIY servers?
The box is for experimentation & learning for fun and profit! :-)

When running some application on the box that processes & reduces the dataset (for example some analytics in RDBMS SQL), then the amount of data returned to the world would be much less than 66 GB/s. I have a 1 Gbit AT&T Fibre at my home(office), so could serve quite a lot through that (until AT&T starts complaining about the "unlimited" bandwidth really not being unlimited after some threshold :-)

But when not hosting stuff in a proper data centre with redundant internet connections, connection reliability would probably be the biggest issue. I've not had that many problems with reliability in the home-office (and occasional online training) usage context, but I'm pretty sure there'd be regular "hiccups" if I tried to serve something with high availability from here :-)

tanelpoder··on Jeff Bezos Doesn’t Have Time to Be CEO of Amazon
Billionaire Problems are real!
tanelpoder··on Achieving 11M IOPS and 66 GB/S IO on a Single ThreadRipper Workstation
Mine goes only up to 2 NUMA nodes (as shown in numactl --hardware), despite setting NPS4 in BIOS. I guess it's because I have only 2 x 8-core chiplets enabled (?)
tanelpoder··on Achieving 11M IOPS and 66 GB/S IO on a Single ThreadRipper Workstation
You can get high availability without a "distibuted system", just an active/passive failover cluster may be enough for some requirements. Even failover (sometimes seamless) on a VMWare cluster can help with planned maintenance scenarios without downtime, etc.

Another way of achieving HA together with satisfying disaster recovery requirements is replication (either app level or database log replication, etc). So, no distributed system is necessary unless, you have legit scaling requirements.

If you work on ERP-like databases for traditional Fortune 500-like companies, few people run such "sacred monolith" applications on modern distributed NoSQL databases, it's all Oracle, MSSQL or some Postgres nowadays. Data warehouses used to be all Oracle, Teradata too - although these DBs support some cluster scale-out, they're still "sacred monoliths" from a different era (they are still doing - what they were designed for - very well). Now of course Snowflake, BigQuery, etc are taking over the DW/analytics world for new greenfield projects, existing systems usually stay as they are due to lock-in & extremely high cost of rewriting decades of existing reports and apps.

tanelpoder··on Achieving 11M IOPS and 66 GB/S IO on a Single ThreadRipper Workstation
I have 2 Optane 905P M.2 cards and I intend to run some database engine tests, putting their transaction logs (and possibly temporary spill areas for sorts, hashes) on Optane.

When I think about Optane, I think about optimizing for low latency where it's needed and not that much about bandwidth of large ops.

tanelpoder··on Achieving 11M IOPS and 66 GB/S IO on a Single ThreadRipper Workstation
Both quad SSDs adapters had a fan on it and the built in M.2 ones had a heatsink, right in front of one large chassis fan & air intake. I didn't measure the SSD temperatures, but the I/O rate didn't drop over time. I was bottlenecked by CPU when doing small I/O tests, I monitored the current MHz from /proc/cpuinfo to make sure that the CPU speeds didn't drop lower than their nominal 3.9 GHz (and they didn't).

Btw, even the DIMMs have dedicated fans and enclosure (one per 4 DIMMs) on the P620.

tanelpoder··on Achieving 11M IOPS and 66 GB/S IO on a Single ThreadRipper Workstation
Valid question!

1) Learning & researching capabilities of modern HW

2) Running RDBMS stress tests (until breaking point), Oracle, Postgres+TimescaleDB, MySQL, probably ScyllaDB soon too

3) Why? As a performance troubleshooter consultant+trainer, I regularly have to reproduce complex problems that show up only under high concurrency & load - stuff that you can't just reproduce in a VM in a laptop.

4) Fun - seeing if the "next gen" hardware's promised performance is actually possible!

FYI I have some videos from my past complex problem troubleshooting adventures, mostly Oracle stuff so far and some Linux performance troubleshooting:

https://tanelpoder.com/videos/

tanelpoder··on Achieving 11M IOPS and 66 GB/S IO on a Single ThreadRipper Workstation
Looks interesting! I wonder whether there'd be interesting new database applications on NVMe when doing as small as 512 byte I/Os (with more efficient "IO engine" than Linux bio, that has too high CPU overhead with such small requests).

I mean, currently OLTP RDBMS engines tend to use 4k, 8k (and some) 16k block size and when doing completely random I/O (or, say traversing an index on customer_id that now needs to read random occasional customer orders across years of history). So you may end up reading 1000 x 8 kB blocks just to read 1000 x 100B order records "randomly" scattered across the table from inserts done over the years.

Optane persistent memory can do small, cache line sized I/O I understand, but that's a different topic. When being able to do random 512B I/O on "commodity" NVMe SSDs efficiently, this would open some interesting opportunities for retrieving records that are scattered "randomly" across the disks.

edit: to answer your question, I used 10 separate fio commands with numjobs=3 or 4 for each and randrepeat was set to default.

tanelpoder··on Achieving 11M IOPS and 66 GB/S IO on a Single ThreadRipper Workstation
I can do it tomorrow, please drop me an email (email listed in my blog)
tanelpoder··on Achieving 11M IOPS and 66 GB/S IO on a Single ThreadRipper Workstation
Yep, some “real” workload tests are coming next (using filesystems). I wanted to start from low level basics and later build on top of that.
tanelpoder··on Achieving 11M IOPS and 66 GB/S IO on a Single ThreadRipper Workstation
Thanks! Will add this to TODO list too.
tanelpoder··on Achieving 11M IOPS and 66 GB/S IO on a Single ThreadRipper Workstation
I learned the last bit from here (Samsung Solid State Drive TurboWrite Technology pdf):

https://images-eu.ssl-images-amazon.com/images/I/914ckzwNMpS...

tanelpoder··on Achieving 11M IOPS and 66 GB/S IO on a Single ThreadRipper Workstation
Yeah, that’s what I wondered - I’m ok with using multiple cores, would I get even more IOPS when doing smaller I/Os. Is the benchmark suite you used part of the SPDK toolkit (and easy enough to run?)
tanelpoder··on Achieving 11M IOPS and 66 GB/S IO on a Single ThreadRipper Workstation
Yes I had seen that one (even more impressive!)

When I have more time again, I'll run fio with the SPDK plugin on my kit too. And would be interested in seeing what happens when doing 512B random I/Os?

tanelpoder··on Achieving 11M IOPS and 66 GB/S IO on a Single ThreadRipper Workstation
Ok, thanks, good to know. I misunderstood from their website.
tanelpoder··on Achieving 11M IOPS and 66 GB/S IO on a Single ThreadRipper Workstation
Thanks for the pointers, I'll bookmark this and will try it out someday.
← PreviousPage 11 of 13Next →