cancel
Showing results for 
Search instead for 
Did you mean: 

DB_BLOCK_SIZE on Linux SLES10 with XFS - 4k or 8k ?

RemiB1
Explorer
0 Kudos

Hi guys,

I have a question regarding the DB_BLOCK_SIZE Oracle 10g parameter on SLES10 using XFS as the FS type.

We just realized that on x86, the FS block size is limited to 4k.

Since SAP is recommending 8k block size for OLTP databases, what would be the ideal value for the DB_BLOCK_SIZE ?

Should we set it to 8k or 4k ?

Thanks !

Accepted Solutions (0)

Answers (3)

Answers (3)

hannes_kuehnemund
Active Contributor
0 Kudos

Dear Rémi,

please consider the following. According to the mkfs.xfs man page, it is stated that "Blocksize: XFS on Linux currently only supports pagesize or smaller blocks". As the page size of the standard Linux Kernel is 4KB on x86_64 you would have to recompile the Linux kernel to use 8kb page size (to be able to have 8kb block size). Recompiling the Linux kernel is not supported for any SAP system running on such a platform. Nevertheless, having a standalone database server with no SAP instance on it (even not the CI), you have to ask the database vendor if they support a recompiled Linux kernel.

When using ia64, the standard page size is 64kb (afaik). There you could set 8kb block size for XFS.

Thanks,

Hannes

RemiB1
Explorer
0 Kudos

Hi,

Thanks for the quick answer !

Actually, the 4k limit for the FS block size is a limitation of the x86 architecture.

That information came from our linux sysadmin, and I found a few links on the internet which confirmed that :

http://oss.sgi.com/projects/xfs/

...

Filesystem Block Size

The minimum filesystem block size is 512 bytes. The maximum filesystem block size is the page size of the kernel, which is 4K on x86 architecture and is set as a kernel compile option on the IA64 architecture (up to 64 kilobyte pages). So, XFS supports filesystem block sizes up to 64 kilobytes (from 512 bytes, in powers of 2), when the kernel page size allows it.

Filesystem extents (contiguous data) are configurable at file creation time using xfsctl(3) and are multiples of the filesystem block size. Individual extents can be up to 4 GB in size.

...

And it seems it's a limitation for every FS type on Linux-x86, not only XFS.

We also thought of using EXT3 at first because of the IO capabilites (asynch+directio) but the fact that you can't do online resizing of the FS was a big disappointment.

Did you find any workaround to that problem ? (not having to unmount the FS to add more space)

markus_doehr2
Active Contributor
0 Kudos

> Actually, the 4k limit for the FS block size is a limitation of the x86 architecture.

yes - as I was "digging deeper" I saw that too... same is true for x86_64 so even that won't help.

<...>

> We also thought of using EXT3 at first because of the IO capabilites (asynch+directio) but the fact that you can't do online resizing of the FS was a big disappointment.

> Did you find any workaround to that problem ? (not having to unmount the FS to add more space)

We usually don't increase filesystems, we create them as big as we estimate it will become until the next maintenance downtime...

Markus

RemiB1
Explorer
0 Kudos

Yeah, we're actually on x86_64 (and not just x86)

As for waiting for the next maintenance downtime to increase a FS size, that might cause us more problems in the long run. Those maintenance don't come that often, and we can't afford to bounce the instances whenever we get a full FS 😕

Also, we've been told by Novell that XFS will soon be supporting ASYNCHIO and DIRECTIO simultaneously on SLES10 SP2 if I'm not mistaken.

So at the moment, I'm just wondering what would be the performance impact if we continue to use 8192 DB_BLOCK_SIZE for the Database on an "4096 blocksize FS" VS a DB_BLOCK_SIZE of 4096.

markus_doehr2
Active Contributor
0 Kudos

That is a good question.

According to metalink 265262.1 (and the referring link under db_* parameters) that is not easy to find.


SQL> show parameter db_block_size;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_block_size                        integer     8192

$ uname -a
Linux XXXXXXX 2.6.16.46-0.14-default #1 SMP Thu May 17 14:00:09 UTC 2007 ia64 ia64 ia64 GNU/Linux

Well - that is Itanium-2 (yes, I know, things are different there) but I didn't actively configure that.

I'd go for 8k block size if you use XFS, maybe there's a different opinion.

Markus

markus_doehr2
Active Contributor
0 Kudos

Are you sure you want to use XFS?

We recently switched to ext3 to make use of filesystemio_options=setall (which can't be set for XFS...)

XFS itself allows blocksizes from 512 bytes to 64 kb, don't know where you got that limitation...

Markus