Tag Info

Hot answers tagged

60

The short answer is: Nobody can answer this question except you. The long answer is that benchmarking your specific workload is something that you need to undertake yourself, because it's a bit like asking "How long is a piece of string?". A simple one-page static website could be hosted on a Pentium Pro 150 and still serve thousands of impressions every ...


38

How much do you value the data? Seriously, each filesystem has its own tradeoffs. Before I go much further, I am a big fan of XFS and Reiser both, although I often run Ext3. So there isn't a real filesystem bias at work here, just letting you know... If the filesystem is little more than a container for you, then go with whatever provides you with the ...


30

If you have concurrency set at 1, there's no difference between those two. It begins to matter when you have more than 1 request performed simultaneously. Let's look at an example of what I get on my localhost: ab -c 1 -n 1000 http://localhost/ will give: Time taken for tests: 3.912 seconds Time per request: 3.912 [ms] (mean) Time per request: ...


14

When selecting a CPU architecture for a web-server, you do need to know what you're doing with the server itself. Only you can tell if what you're doing can take advantage of multiple cores, or if it is solidly single-threaded. PassMark's PerformanceTest product test distils CPU performance down to a single number, yet what you're doing with your web-server ...


14

Disk & RAM Capacity Planning Planning disk and memory capacity for a database server is a black art. More is better. Faster is better. As general guidelines I offer the following: You want more disk space than you'll EVER need. Take your best estimate of how much disk space you'll need for the next 3-5 years, then double it. You'll want enough RAM to ...


13

ab only sends web requests, it doesn't care what the server is that it is testing. However, it only tests one page. There is perfmeter, siege, httpload, jmeter and a number of others. httpload is rather nice since you can feed it a series of URLs that will be tested.


12

The only way latency would drop appreciably is if the current 100Mbit link is saturated. If it is not saturated, you will likely not notice any change. Additionally, your assumption that the 1Gbit link will be able to support larger packets is incorrect. Max packet size is determined by the MTU of the various devices along the path that the packet takes - ...


10

It may also be worth noting that you can run InnoDB without a filesystem and improve performance without filesystem overhead. I'm not sure I'd recommend it, but I've used it before without issues. InnoDB Raw Devices In addition, if you're running at 90% reads and 10% writes, unless you need the transactional ability of InnoDB you might look into porting to ...


8

The short version is that the closest to a recommendation I've seen MySQL make on filesystems is XFS, however ext3 should be ok as well, ext4 promises to be a nice improvement, but it's still not quite stable, although it should be before the end of the year. If you're running cluster filesystems CXFS, OCFS2 and GFS should all be ok. I'd strongly warn ...


7

The virt-what script will identify many different types of hypervisors and container technologies. It's pre-packaged for most major Linux distributions (e.g. apt-get install virt-what or yum install virt-what) and its output is suitable for use in shell scripts. It correctly performs its detection from inside the virtual guest. Current types of ...


7

You can download and install the "stress" utility... It allows you generate CPU, Memory, Disk and IO load from the command line. Homepage: http://people.seas.harvard.edu/~apw/stress/ FAQ: http://people.seas.harvard.edu/~apw/stress/FAQ


7

yes, iperf is the right tool for this. Make sure you use a long interval to allow the traffic stream to grow to 10GbE speeds. You may have to modify TCP window sizes to reach full saturation, as well. Here are some sample command lines... On the server side: iperf -s On the client side: iperf -c server.ip.address -w64k -t60


6

The answers here are seriously deprecated, and need updating as this is coming up in google results. For produciton environments, XFS. Everytime. XFS is journaled and non-blocking. Make sure you have the following variables for a modern (2011/2012) MySQL database using InnoDB in production: innodb_file_per_table = 1 innodb_flush_log_at_trx_commit = 1 # an ...


6

When you're dealing with the web, it's usually not the speed of an individual request that matters, because it's not a realistic indicator of how the server will perform under load. What you really want to know is whether your server can serve pages up fast enough for users to have a good experience under expected load conditions. To answer that question, ...


6

It's not likely to make much difference. Go with whatever your distribution uses as its default, provided it's sufficient. Spend your effort tuning other things - get enough ram - get a raid controller which doesn't suck - and fix the application's lame (ab)use of the database (NB: this is the main culprit in most cases where it hasn't already been done). ...


6

On Linux, it is possible to look for tell-tale signs of virtualisation depending on the type of hypervisor used. You can typically start by looking in /proc/cpuinfo for the CPU type. Some hypervisors report fake CPU types such as "QEMU Virtual CPU". If it is running VZ, you can find /proc/user_beancounters that report resource usage. With Xen, you will find ...


6

I've had good luck with: dd if=/dev/urandom of=/dev/null bs=1024 It keeps a single thread at 100% CPU. Run multiple times to keep more cores busy. Nice it if you want to.


6

If you're looking for a quick and dirty bandwidth/latency test then http://www.speedtest.net/ works. It will give you latency measurements and up/down bandwidth. Loss and Jitter are other variables to measure, but less commonly an issue. Evaluating overall experience depends on application. Some uses are latency sensitive, others are bandwidth sensitive. ...


6

The most important benchmarks are the ones you take against your application before making some changes, then re-running them, on your own hardware in your own server environment. This won't help if you're trying to choose whether to use framework X versus framework Y for your application or configuration, unless you are in a position to test your servers ...


6

I used to do a good deal of hardware troubleshooting in large datacenters, I would recommend find a bootable Linux distribution, any will do. Be sure to find one with a 64 bit image if you have a 64 bit CPU. Stresslinux contains a whole suite of tools to stress your servers, and force any hardware failures out into the open. I'm personal to the "stress" ...


5

What is reasonable depends on what kind of traffic your server is getting. A typical web server that handles about 1 million page requests per day (and that's quite a busy little server) will rarely ever need more than 50 concurrent connections, unless your page processing is really heavy. If your average page processing time (i.e. the time it takes from ...


5

Take a look at bonnie and bonnie++, they will give you pretty much information. http://www.coker.com.au/bonnie++/


5

Anything other than a real workload will not tell you if the new system is faster. It could have slower CPU, less memory, slower disk but still give faster throughput simply because it's closer to your userbase. fio is handy for comparing disk I/O. ab is better than nothing - bt for more realistic testing then have a look at www::mecanize/http::recorder.


5

Sure, by all means. One thing to watch out for with iperf is that you can bottleneck at the CPU - by default, it uses random data to nullify the effect of any tricky compression or deduplication of data. If you have enough nodes, then it should be no problem to just use the default; if you find that the CPU is pegging, then override the input to something ...


5

If you are running Hyper-V and wish to look at the performance on its current machine then I recommend the following article on How to Monitor Hyper-V Performance. Has come in handy in the past. I am not aware of any tools that can look at the performance of the Hyper-V layer which are inexpensive.


4

I'm not finding any recent articles with benchmark "roundups" on MySQL running on various filesystems. Given the workload you describe, I doubt that file-level fragmentation is going to be much of an issue. Without a formal benchmark, I can't say anything that you should take as authoritative, but my gut says that every filesystem you mentioned above is ...


4

I don't think you can disable all disk caching in Linux. As a hack, you could keep running "sync; echo 3 > /proc/sys/vm/drop_caches" to flush almost anything that is cached in memory. From the console watch -n 1 `sync; echo 3 > /proc/sys/vm/drop_caches` would do the trick. In the above example nothing will remain cached by the kernel for more than a ...


4

The question is what do you mean by flops? If all you care about is how many of the simplest floating point operations per clock, it is probably 3x your clock speed, but that is about as meaningless as bogomips. Some floating point ops take a long time (divide, for starters), add and multiply are typically quick (one per fp unit per clock). The next issue is ...


4

Looking at the CPU benchmarks on PassMark your particular CPUs have a difference of 3.4x with your dev machine being the faster one in their benchmark rating. Since this is very close to the 3.3x time factor in your ab benchmarks it would be a good guess that the difference is simply due to the better CPU on the dev machine. Note that modern CPUs cannot be ...


4

One of the better command line tools for checking bandwidth available is iperf. However you need another box on an known fast connection to run the test against. I'm not aware of any public iperf servers.



Only top voted, non community-wiki answers of a minimum length are eligible