2016-12-14 15:07 GMT+01:00 mostolog--- via rsyslog <[email protected]>:
>
>> On Wed, 14 Dec 2016, David Lang wrote:
>>
>>> this will slow rsyslog down by a factor of >1000x. I ran tests on this
>>> using a very high end PCI based SSD and had a 2000x - 8000x slowdown, and
>>> this was with v5, the added improvements in performance since wukk cause an
>>> even bigger slowdown as they would reduce the amount of time rsyslog spends
>>> processing the message outside of the queue manipulation, I would expect the
>>> slowdown to be significantly above 10,000x nowdays.
>>
>> you also have to set batch size = 1
>>
>> The problem is that in a crash you can't count on anything in memory
>> making it to disk, so you have to write each message to disk, do a fsync on
>> the data, possibly do a fsync on the directory [1], and only then respond
>> with the ack
>>
>> doing anything else exposes you to a window where the message could be
>> lost.
>>
>> But the performance of filesystems is such that doing a fsync for every
>> write to the disk is crippling, even with SSDs [2]. You also need to make
>> sure that the SSDs don't buffer the write at all (many do), and that you are
>> writing to a RAID set (so that the failure of s single SSD doesn't loose the
>> data), which then means you need to make sure your RAID controller either
>> doesn't do any buffering, or has a battery backed cache.
>>
>> If you are willing to loose messages in the case of a complete system
>> crash/power outage/hardware failure, then things get much simpler, you don't
>> need to use a disk type queue, just use a disk assisted queue (type
>> FixedArray or LinkedList with a filename) and saveonshutdown and you get
>> very good performance (except for the known performace issues with
>> retrieving data from a disk queue)
>
> LinkedList and saveonshutdown will be.
>
> About the "creating temporary queues" if ruleset doesn't have a queue
> defined, I'll wait rgerhards for a deep explanation, full of examples,
> colors and music all around.

I don't understand "temporary queues", but I must also admit that I
cannot dig deeper into the ultra-reliable case this year. There is
ample of existing conversation on the web, especially the mailingl
list archive.

>
> would imrelp->file->mmjson+mmnorm->elastic be a better approach?
>
>> [1] it's actually even worse than this with filesystems newer than ext2
>>
>> you write the data to the file and do a fsync on the data.
>> if this changes the size of the file in disk blocks, you then need to do a
>> fsync on the directory the file is in so that the size change is written
>> each of these writes are written to the filesystem journal as a temporary
>> thing, and then the filesystem needs to write a copy of the data to the
>> final location and (once it knows the data is safe there, possibly involving
>> another fsync for both the data and metadata), do another write to the
>> journal to know that the data was safely saved in the final location
>>
>> so processing one log message can require 6 writes, all of which can
>> require a fsync
>>
>> [2] without SSDs you are limited to <rpm/60 fsyncs/sec due to the simple
>> physics of a write requireing the disk to rotate once, and since you aren't
>> infinantly fast, you end up a fair bit below that.
>>
>> ext3 had a bug where a fsync required writing all pending data to the
>> disk, including data that was written after the fsync started. People
>> documented a single fsync taking >30 seconds.
>
> These are enough reasons to definitively totally absolutely use fsync as
> much as we can
> :P

It is safer to walk from Madrid to Barcelona than to drive a car, yet
most people accept the additional risk for the benefit involved ;-)

Rainer
_______________________________________________
rsyslog mailing list
http://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com/professional-services/
What's up with rsyslog? Follow https://twitter.com/rgerhards
NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of 
sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T LIKE 
THAT.

Reply via email to