benchmarking interview questions
Top benchmarking frequently asked interview questions
On some unix systems I've been used to a time
command which many options including ways to format the output (-f
) and redirect the output to a file (-o
), see for example this man entry of time
.
However on OS X it seems that we have a crippled down version that only has two (not so useful) options -lp
. (I'm on Snow Leopard if that matters.)
So, how can I get a better time
for my system?
Source: (StackOverflow)
Is there a way to benchmark how fast my router is connected to my PC, independent of the internet?
I've had slower-than-usual internet-based benchmarks, and I'm having a hard time figuring out if it's because of a bad router-to-PC connection (interference, bad signal, etc.) or if it's indeed because my internet is actually slower.
Source: (StackOverflow)
I'm looking to build a new computer from the ground up. I'm not sure what to look out for and need guidance and help on how to pick the hardware needed to construct my new rig.
How do I know what to buy?
How do I find out if a given CPU will be enough for a certain game or application that I want to run?
How do I find out if a given graphics card will be enough for a certain game or application?
What is important when looking at motherboards?
How much memory do I need?
How do I know how much wattage I need for a power supply?
What size case do I need?
What relevant standards do I need to read up on and be aware of?
PCI, PCIe, SATA, USB 2.0, USB 3.0, etc...
What "gotchas" do I need to be on the lookout for?
Please keep responses generation-agnostic to ensure they will be helpful to our future users.
While Stack Exchange does not permit shopping recommendations, it doesn't provide any general advice to consider when buying hardware. So, instead of just telling those that ask what to buy that it's not allowed, let's tell them how to figure out what they need.
This question was Super User Question of the Week #20
Read the June 20, 2011 blog entry for more details or submit your own Question of the Week.
Source: (StackOverflow)
I've been doing some performance tests on a few of my drives lately, trying to figure out which combination of drive/raid-level(or not) will give me the best performance (for Hyper-V incase anyone's curious).
However, I'm seeing some behaviour/results that seems quite odd to me.
I'm using standard Windows Software Raid (ie, not fake motherboard raid, and don't want to spend the few hundreds of dollars I'd need to in order to get a decent hardware raid controller) for these tests. I'm not at all concerned about backups or drive failure (Windows Home Server, FTW!), I'm focussing strictly on performance. These tests are being executed in Windows 7 Ultimate (My server will end up being Server 2k8R2).
I've got two Western Digital Black 640Gb drives (SATA300) which give the following results using Atto Disk Benchmark (I also get similar results with SQLIO):
Drive Read Write
640(#1) 120 115
640(#2) 125 110
Mirror (Raid-1)* 82 77
Striped(Raid-0) 162 145
The unexpected result is the drastically poor performance fo the mirrored drives. I was expecting reads to be slightly better than a single drive, not significantly worse..
I've run the tests a number of times (breaking and recreating the array and mixing up the mirror vs striped vs single drive tests) with comparable results.
For anyone using a similar software raid setup, do these numbers jive with what you're working with, or are they completely off base? (Because the certainly seem so to me...)
Source: (StackOverflow)
I rent a server which should have "2 Cores x 2,2 GHz". When in run the command cat /proc/cpuinfo
I get the following result:
processor : 0
vendor_id : AuthenticAMD
cpu family : 15
model : 67
model name : Dual-Core AMD Opteron(tm) Processor 1218 HE
stepping : 3
cpu MHz : 1000.000
cache size : 1024 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow extd_apicid pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy
bogomips : 2009.48
clflush size : 64
power management: ts fid vid ttp tm stc
processor : 1
vendor_id : AuthenticAMD
cpu family : 15
model : 67
model name : Dual-Core AMD Opteron(tm) Processor 1218 HE
stepping : 3
cpu MHz : 1000.000
cache size : 1024 KB
physical id : 0
siblings : 2
core id : 1
cpu cores : 2
apicid : 1
initial apicid : 1
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow extd_apicid pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy
bogomips : 2009.48
clflush size : 64
power management: ts fid vid ttp tm stc
There it says 2* 1000 MHz. I called my provider and they said that the 2.2 GHz are not shown, but they are installed. How can that be?
Source: (StackOverflow)
What is the best free software to measure computer performance? I want to make couple of small upgrades and i'd like to see if they were worth the money/time spent.
Source: (StackOverflow)
Do UPS increase the performance or life expectancy of the hardware connected to it? What if the UPS has a built in line conditioner?
Source: (StackOverflow)
Is there any software that exists to benchmark how long it takes to install software? I know there are programs to benchmark startup times, but I'd like to measure how long the installation package for a given program takes to run. This will be used in an upcoming Super User Blog post.
Source: (StackOverflow)
I want to know how I can compare the quality of different voice products, in order that it gives the best audio quality rating for calls through the internet in average network conditions.
How exactly can I benchmark this? Are there benchmarks available on the internet?
Source: (StackOverflow)
It seems logical to me that on a 64-bit kernel compiling it to optimize for size might help overall. (My distro of choice uses -O2) It has the benefits of more registers and memory and perhaps less cache contention than normal optimized code. I have a kernel compiled like this and it seems excellent. However my question is how can I prove this? I like using Phoronix for "real world" sort of benchmarks so I would prefer to test cases like that. What should I pick to test? Does anyone else have any alternatives? Thank you very much in advance.
Source: (StackOverflow)
I am developing a system with Windows 7 64-bit, Visual Studio and Sharepoint on a virtual workstation on some kind of VMWare server.
The system is painfully slow, with Visual Studio lagging behind when entering code, IntelliSense lagging, opening and saving files takes ages when compared to a normal budget laptop.
As far as I can see the virtual machine has OK specs and does not seem to be swapping etc., and the IT department also says that they can't see anything wrong when they're monitoring the system.
As long as the problem is not well-documented, the IT department and management does not want to throw money (=upgraded laptops) at us, so I need to show some sort of benchmark.
It has been many years since I did any system benchmarking, and I don't know the current benchmark software, so my question is which benchmark will be most relevant for Visual Studio performance? Not just for compiling fast, but also to reflect the "responsiveness" of the system.
Source: (StackOverflow)
I found this neat and dead-simple DIY project for boosting a WiFi AP's antenna range, and I was wondering how I could actually do a before/after benchmark.
Are there any free tools that could test the quality of a WiFi network? I'm thinking of walking around my appartment with my netbook in hand and eventually end up with a 'coverage map'.
Most searches I tried ended up in some wardriving tool or another - they don't seem to fit for my purpose, but correct me if I'm wrong.
What I'd like the tool to have (a subset is fine, but the more, the better):
- show the instantaneous signal strength, and not just with a 1-5 bars resolution as Windows does. I want hard numbers.
do a throughput test (U/L, D/L). For this, I guess I could use a 2nd computer on the same subnet, wired directly to the AP, and try a large file transfer.
do a latency check on the local LAN
So, any suggestions?
Source: (StackOverflow)
I started installing HPL a while ago, and had a related question. I've been following along with this guide from Intel. I figure this warrants a whole new one. When I try to make the archive, the output seems fine until the end, where it gives an error.
make[2]: Entering directory `/hpl-2.0/src/auxil/intel64'
Makefile:47: Make.inc: No such file or directory
make[2]: *** No rule to make target `Make.inc'. Stop.
make[2]: Leaving directory `/hpl-2.0/src/auxil/intel64'
make[1]: *** [build_src] Error 2
make[1]: Leaving directory `/hpl-2.0'
make: *** [build] Error 2
Going to the directory /hpl-2.0/src/auxil/intel64 shows a file, "Make.inc", but it's highlighted red, and the white text blinks.
Is there a way to manually make that file? What do I need to do to get the makefile to do this for me?
Source: (StackOverflow)
I want to encrypt a part of my HDD. But before that I wanted to benchmark the different algorithm available wondering if I should choose aes-xts-256
or aes-xts-512
.
Note: I don't have aes
hardware acceleration. The benchmarks were repeated multiple times without much change. I'd like to state clearly that these benchmark are only valid on my computer (Debian, core 2 duo). This is not intended to be a complete LUKS-TrueCrypt comparison.
TL;DR: go to part 4
1- Cryptsetup
So I downloaded cryptsetup v1.6.0
to make use of the new cryptsetup benchmark
command.
Command
$cryptsetup benchmark
Results
# Algorithm | Key | Encryption | Decryption
aes-cbc 128b 128,2 MiB/s 157,2 MiB/s
serpent-cbc 128b 49,6 MiB/s 57,7 MiB/s
twofish-cbc 128b 138,0 MiB/s 183,8 MiB/s
aes-cbc 256b 97,5 MiB/s 121,9 MiB/s
serpent-cbc 256b 51,8 MiB/s 57,7 MiB/s
twofish-cbc 256b 139,0 MiB/s 183,8 MiB/s
aes-xts 256b 156,4 MiB/s 157,8 MiB/s
serpent-xts 256b 55,7 MiB/s 58,7 MiB/s
twofish-xts 256b 161,5 MiB/s 165,9 MiB/s
aes-xts 512b 120,5 MiB/s 120,9 MiB/s
serpent-xts 512b 55,7 MiB/s 58,5 MiB/s
twofish-xts 512b 161,5 MiB/s 165,3 MiB/s
Thoughts
In cbc
mode, serpent
is surprisingly fast at decrypting!
In xts
mode, serpent
is clearly the fastest.
- The key size seem to have almost no noticable effect on
serpent
twofish
.
aes
does not behave well when the key size is increased.
Updates out of VM
2- TrueCrypt
I was really surprised as aes
is known to be the fastest (even without hardware acceleration). So I downloaded TrueCrypt
to double-check these results. TrueCrypt
uses the xts
mode by default so I assume it also use it in its benchmarks.
Method
- Tools > Benchmark
- Choose any buffer size (here, 5MB)
- Click on "Benchmark"
Results
# Algorithm | Encryption | Decryption
AES 106 MB/s 107 MB/s
Twofish 78 MB/s 76 MB/s
Serpent 41 MB/s 42 MB/s
Thoughts
These results corresponds much more to what is expected but do not match well with cryptsetup
's results.
3- General thoughts
cryptsetup
provided better general performance than TrueCrypt
in this case. This could be explained the following way:
cryptsetup
was compiled on my system with compiler optimization routines while TrueCrypt
was already compiled in a generic way;
- AFAIK
cryptsetup
uses kernelspace crypto modules while TrueCrypt
uses userspace crypto routines.
- However, I can't explain why
serpent-xts-512
seems to be the way to go with cryptsetup
while aes-xts
the only cipher worth using.
4- Question
cryptsetup
and TrueCrypt
give completely different qualitative (relative cipher speed) and quantitative (actual speed of each cipher) results in in-RAM benchmarks.
- Is that something you have already noticed?
- Should I trust
cryptsetup
and use serpent-xts-512
cipher for speed?
Source: (StackOverflow)