Solaris differences from AIX and Linux
Solaris has some differences than AIX and Linux.
AIX and Linux has more similar
parts.
Solaris differences may seem like
abnormalities to some users at first
sight but they are obviously not J
Just dont forget that they
are just results of other design perspectives and different point of views.
In this article
we will try
to explain some major Solaris
differences.
Again dont forget that everything
has trade-offs and comes with their advantages
and disadvantages.
Solaris may seem a little different
but reason is not creating more troubles, nobody loves troubles,
you must believe it.
-
ZFS
Solaris has ZFS file system.
ZFS file system is the file
system used at Oracle’s storage solution named ZFSSA. ZFS file system is a storage-level advanced file system having advanced features. For example,
one unique and really valuable feature we admire
is getting snapshot differences by means of “zfs diff” command.It
is really a unique feature you cant
find anywhere else and you have this
feature free. ZFS file system is not journal-based, it is transactional. Every IO is atomic and every IO gets commit
like Oracle database. ZFS
has no inode-limit
at its file system config, you can create billions
of files. ZFS also implements thin provisioning by default and that’s why df output
of Solaris seems a little bit different than AIX and Linux. Thin provisioning is widely used at storages and it is good for effective
disk consumption. Totally,
ZFS is really a good file system but ZFS COW feature may
consume more memory than XFS or JFS2. ZFS ARC
file cache may become another component consuming more memory. You can only specify min and max limits
for this ARC cache but there is no parametre like swappiness at Solaris. Solaris automatically manages itself very well, it determines
when to drop
which file cache pages on demand etc. File cache is an ordinary consept but it is not a meaningless feature when compared to
serving IO from memory instead of going to disk. So, dropping file cache may not always be harmless. Solaris OS may require more
memory than AIX and Linux.
Because designs and necessities differ, it may not always be the correct action
to give same
amount of memory when making comparision
benchmarks with Solaris,AIX,and Linux.
- Solaris memory
and swap management mystery ( for details examine
here)
Solaris memory
Management uses early binding. It means it cares reservation requests.
AIX-Linux uses late binding. It means they dont care memory
reservation requests.
AIX-Linux aims servicing max application with same amount
of RAM,
so they dont
care reservation. Additionally, they need mechanisms like over-committing,balloon memory,oom-killer.
Solaris behaves more
controlled and conservative
at its design because it respects reservations and thinks that killing applications
due to oom-killer
may be risky for application health, especially with heavy-loaded mission critical applications. Discarding reservation may be achieved at application code level with
MAP_NORESERVE flag
at Solaris, again a conservative approach delegated to app code level
for better app health. Such memory Management design requires more swap disk area
for solaris. You can give little swap values
at AIX or Linux but having “Physical
Swap Disk = 0.75 * Physical RAM” is really a necessity for not living problems and having good performance at Solaris. People are not used to
such big swap
areas but it is important for Solaris. You must give
what solaris needs and you must
believe that Solaris manages itself very well.
Solaris swapfs management is really complex and not easy to understand. You can partially understand but you can not totally understand.That’s why we call it MYSTERY. Solaris OS may require more SWAP space than AIX and Linux. Because designs and necessities differ, it may not always be the correct action
to give same amount of SWAP when making comparision
benchmarks with Solaris,AIX,and Linux.
- Solaris /tmp mystery ( for details examine
here)
Temporary area
may be needed both by applications and users at your OS. Solaris cares better performance
for temporary application files much more than
user temp files. So /tmp is tmpfs rather
than an ordinary file system for better application response times as many applications generally use /tmp for their
temp area. This is by design
but implementing tmpfs again brings the
trade-off about consuming much more memory. Solaris OS may consume more memory
than AIX and Linux. Because designs and necessities
differ, it may not always be the correct
action to give same amount
of memory when making comparision benchmarks with Solaris,AIX,and Linux. Solaris thinks that users may use /var/tmp
for their temp files. Applications must use /tmp
for app temp
files. Solaris design also logically
thinks and combines “/tmp data” with “swap data” because “they are all
temporary at the end”. But this also increases complexity of tmpfs and swapfs mechanisms. Also because of this combination, you must always set upper limit for your /tmp.
We again offer you giving
what solaris needs and trusting solaris that it will manage itself
very well. Solaris swapfs-tmpfs mechanisms are not easy to understand,
you can partially understand but you can not totally understand. That’s why we call
it MYSTERY.
Feel free to communicate by
bulent.yucesoy@gmail.com