This document contains only my personal opinions and calls of judgement, and where any comment is made as to the quality of anybody's work, the comment is an opinion, in my judgement.
[file this blog page at: digg del.icio.us Technorati]
Every medium to large Linux deployment that I am aware off has switched SELinux off. Once you stray from the default configurations that the system distributors ship with the default policies no longer work and things start to break. In my admittedly limited experience, this happens very quickly.The second issue is that the user interface layer is poorly designed and overly complex and clever (which is usually what wannabes do), that is very un-UNIX like, and the third is that:
If the policy language was halfway sane then this wouldn't be so bad - a skilled administrator could adjust the policy
The Linux solution to #2 seems to be to add various wizards and other abstraction between the administrator and the policy, rather than tossing the horrid mess and replacing it with something more comprehensible.But I have the impression that this is the general policy for GNU/Linux development, because this is also the basis of most other enhancements: hide a poorly designed base under a layer of look-good wizardry. The two areas that come to mind are system administration, where instead of cleaning up and simplifying the fundamentals they are being layered under limited, fragile GUIs, and the desktop environment itself.
make it easyGUIs on top. Conversely the UNIX philosophy instead has always been one of simplicity and terseness, conceptual economy. But the Microsoft cultural hegemony influences large parts of the GNU/Linux culture.
udev
subsystem, which replaced the simple, robust and easy to
understand
devfs
with something poorly designed that requires dæmons and
stacks of scripts to be workable. A good example of replacing
something more comprehensiblewith a
horrid mess, which is something that Microsoft would find particularly admirable.
we have a new large raid array, the shelf has 48 disks, the max. amount of disks in a single raid 5 set is 16.What a pity! Such pettily arbitrary limitations can reduce the effectiveness of a positive-thinking, can-do plan (even if the truly inspired can work around such limitations):
There will be one global spare disk, thus we have two raid 5 with 15 data disks and one with 14 data disk.Well, if it is almost read-only that's one of the few cases in which RAID5 may be tolerable. The problem here however is what happens when one of the disk fails: is a large drop in read performance acceptable while the rebuild goes on acceptable? Is total data loss acceptable if a second failure happens during that?
The data on these raid sets will be video data + some meta data. Typically each set of data consist of a 2 GB + 500 MB + 100 MB + 20 KB +2 KB file. There will be some dozen of these sets in a single directory - but not many hundred or thousend.
Often the data will be transfernd from the windows clients to the server in some parallel copy jobs at night (eg. 5-10, for each new data directory). The clients will access the data later (mostly) read only, the data will not be changed after it was stored on the file server.
Each client then needs a data stream of about 17 MB/s (max. 5 clients are expected to acces the data in parallel). I expect the fs, each will have a size of 10-11 TB, to be filled > 90%. I know this is not ideal, but we need every GB we can get.Exactly! The
we need every GB we can getis the refrain of most RAID5 songs. A RAID developer I know made the very wise remark that RAID5 is
salesman's RAIDbecause a good salesman with a positive thinking, can-do attitude can promise that RAID5 will deliver all three of low cost, high performance, and great safety. And some salesmen will even say that about RAID3 or RAID4...
Any ideas what options I should use for mkfs.xfs? At the moment I get about 150 MB/s in seq. writing (tiobench) and 160 MB/s in seq. reading. This is ok, but I'm curious what I could get with tuned xfs parameters.Well, a 14 or 15 wide RAID setup will have a pretty long stripe size, especially with a largish chunk size. If writes are not stripe wide and stripe aligned, bad news. More surprising that read performance is the same poor, but then I know a RAID subsystem that seems poorly designed enough (perhaps intentionally as part of a marketing strategy, as a smart guy mused) that the 60-70MB/s drives in it can only deliver about 7-10MB/s (and this is actually stated in the vendor's literature).
The new slide says that Larrabee products will have from 16 to 24 cores and adds the detail that these cores will operate at clockspeeds between 1.7 and 2.5GHz (150W minimum). The number of cores on each chip, as well as the clockspeed, will vary with each product, depending in its target market (mid-range GPU, high-end GPU, HPC add-in board, etc.)Typically the CPUs will be in order dual issue ones, and it is also mentioned that they may be in effect a bunch of Pentiums clustered on a single die, which was one of the potential but unrealized ways in which CPUs could have evolved, and which seems to be coming back. From the same article some details on an upcoming Intel 8-CPU SMT chip from Intel:
The presentation also includes some details about Intel's 32nm "Gesher" CPU, due out in 2009. In brief, it's 4-8 cores, 4GHz, 7 double-precision FLOPs/cycle (scalar + SSE), 32KB L1 (3 clocks), 512KB L2 (9 clocks), and 2-3MB L3 (33 clocks). The cores are arranged on a ring bus, just like Larrabee's, that transmits 256 bytes/cycle. Gesher is due out sometime in 2009.The other thing I missed is that the similar purpose design from AMD/ATi AMD stream processor is advanced enough to have been demonstrated and even
benchmarked:
According to an AMD demonstrated system [6], with two dual-core AMD Opteron processors and two next-generation AMD Stream Processors based on the Radeon R600 GPU core running on Microsoft Windows XP Professional, 1 TFLOPS can be achieved by an universal Multiply-add (MADD) calculation, which is 10 times of the performance of the current top-class dual-processor systems (based on the figure of 48 GFLOPS per Intel Core 2 top-model processors). Showing benefits of stream processors from large scale parallel processors, providing enhancements in FP computational performance.The Larrabee has just been speculated to be the reason why Intel bought Havok an otherwise irrelevant developer of game middleware paying as much as $110 millions for it:
Recent demostartions showed that in AMD Stream Processor optimized Kaspersky SafeStream anti-virus scanning, the system with two AMD Straem Processors with dual Opteron processors spotted 6.2 Gbit/s (775 MiB/s) bandwidth, 21 times compared to plain dual-processor system without AMD Stream Processors, with only 1-2% CPU utilization on the dual processors system, showing significant FP offloading from CPU to the Stream Processor[7].
Intel can make Havok's physics engine and other software scream on Larrabee, so that when then the new GPU launches the company can advertise "good enough DX10 performance" coupled with "but check out what we can do with physics and AI." If Intel can entice enough consumers with a combination of Havok performance and the promise of real-time ray tracing (RTRT) goodies to come, then the company can deliver a large enough installed base to developers to make the effort of putting out a RTRT version of their games worthwhile.Well, that is a bit ridiculous: Intel could have bought with that money more than one game studio, and most game studios haven't licenced middleware like Havok, but have developed their own highly optimized multi-platform middleware, because it is actually quite easy to do, and there are lots of people who have written simulation libraries for GPUs apart from HavokFX. Also, real-time ray-tracing can be done today in software even if of course a multi CPU chip would help as was argued earlier here about the Cell.
dd
both with the iflag=direct
option (and a block size
of 1MiB, writing to /dev/null
):
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 2 1 0 964224 8952 13880 0 0 68608 0 503 307 1 2 0 97 2 1 0 964224 8952 13880 0 0 69632 0 446 192 1 4 0 95 2 1 0 964224 8952 13880 0 0 64512 0 434 174 0 5 0 95 2 1 0 964224 8952 13880 0 0 68608 0 441 169 1 0 0 99 2 1 0 964224 8952 13880 0 0 66560 0 436 183 1 5 0 94 2 1 0 964224 8952 13880 0 0 63488 0 430 164 1 8 0 91 2 1 0 964224 8952 13880 0 0 67584 0 438 183 0 1 0 99 2 1 0 964224 8952 13880 0 0 68608 0 451 232 1 3 0 96 2 1 0 964224 8952 13880 0 0 68608 0 447 205 1 0 0 99 2 1 0 964224 8952 13880 0 0 67584 0 450 210 0 3 0 97 2 1 0 964224 8952 13880 0 0 69632 0 451 204 1 1 0 98 3 1 0 964224 8952 13880 0 0 68608 0 451 217 1 1 0 98 2 1 0 964224 8952 13880 0 0 67584 0 443 190 0 1 0 99 3 1 0 964224 8952 13880 0 0 68608 0 456 228 1 0 0 99and without:
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 3 1 0 93408 859992 18832 0 0 68864 0 852 1122 1 19 0 80 3 1 0 93116 860504 18792 0 0 69376 0 875 1268 1 18 0 81 3 1 0 93296 860248 18788 0 0 66048 0 914 1323 0 15 0 85 2 1 0 92996 860632 18820 0 0 69248 0 848 1220 1 16 0 83 2 1 0 92548 861016 18800 0 0 69248 0 849 1213 1 18 0 81 2 1 0 92848 860760 18816 0 0 67328 0 833 1184 0 17 0 83 2 1 0 92316 861272 18800 0 0 68224 0 841 1196 1 17 0 82 2 1 0 93088 860504 18832 0 0 69376 0 849 1215 1 18 0 81 2 1 0 92848 860764 18832 0 0 67840 0 879 1267 1 16 0 83 0 1 0 93088 860508 18808 0 0 67328 0 852 1215 1 18 0 81 2 1 0 92976 860636 18812 0 0 69120 0 863 1244 1 17 0 82 1 1 0 92668 860892 18788 0 0 69120 0 857 1231 1 17 0 82 1 1 0 92308 861276 18820 0 0 66688 0 854 1227 0 16 0 84In both cases the transfer rate is around 65-70MB/s, but with the buffer cache enabled there is an additional 15-20% CPU overhead. In other words on this 2GHz socket 754 Athlon 64 in 32 bit mode, roughly 5MHz per 1MB/s, which sounds a bit expensive to me. Also, I have just noticed that while I used to get around 1500MB/s from
hdparm -T
now I seem
to be getting only 600MB/s, and I shall investigate.
in-orderdual-issue superscalar. This means that their execution model is quite simple, and Niagara single CPU performance sucks on
dusty decks. This is countered by the number of CPUs, and by the ability to run up to 8 threads per CPU. In other words this chip is likely to be terrible for single threaded dusty decks, but can be pretty awesome for custom-written highly threaded new developments, for example in Java. Its architecture is also somewhat reminiscent of the IBM/ class="corp">Sony/Toshiba Cell and the IBM/Microsoft Xenon chips, each of which has multiple CPUs, each being a RISC CPU with 2-issue in-order superscalar and multiple threads, and which also suck on code that has not been written for that kind of design. Conversely the Sun AMD64 servers based on AMD Opterons, have a reputation for very good performance on dusty decks. Interesting marketing and technical strategy for Sun.
rootfilesystem, which has 260k files taking 6.9GB in a 10GB partition. I have tried a
tar
dumping of the root before and after loading it on two different
250GB disks, one (hda1
) with 57MB/s sequential
transfer and faster seeks, and one (hdb1
) with
66MB/s rate and slower seeks:
Status | Repack hda1 |
Repack hdb1 |
---|---|---|
old | 11.9MiB/s | 10.5MiB/s |
new | 33.2MiB/s | 33.6MiB/s |