Sponsored Content
Operating Systems Solaris Is it possible to find the seek rate of the find command in Solaris? Post 302712193 by jim mcnamara on Tuesday 9th of October 2012 12:05:00 AM
Old 10-09-2012
Long version:
Solaris has an inode cache. So as long as the file in question is cached in the inode cache, there is very little overhead on calling stat() - which is how find works. Look up the man page for either ftw() or nftw().

Once you stat() a file, the inode will get cached if it was not in there. Eventually the cache fills up and some inodes get moved out.

Bottom line: So when you hit the indoe cache you are in kernel you are not testing disk I/O.

So, you are not measuring what you think you're trying to measure by trying find.

I/O is hard to test as a one-off operation
Why? inode caching, different disk controller types, disk speeds (rotational latency), i/o queue request length, file data caching all contribute to how fast/slow you can access a file's data and metadata on disk.

Modern systems with fast disks and no competition for the disk can usually read the first few hundred blocks of a file that is not cached anywhere in something under ~10 milliseconds.

Short answer: don't use find. use nftw() and open() and read() in a simple piece of C.
If you use the shell, remember most commands involve opening files, lots of files, over and over again. Not all commands do this but most do.

Try this:
Code:
truss -t open /usr/bin/ls

Note how many files are opened just to run this one simple command.

You get around most of this extra file activity by using one piece of code to try to open all the files on your disk and read one block.

To actually test seek times accurately you need to do something like timing driver-mode code to ask a drive to seek all over the place. Some disk vendors have benchmarking code or disk controller test code that does this. You have to run it as root against a dismounted disk. See if you can find code for your disks.
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Find command in Solaris

Hi folks, I am DBA who needs some help with find command. We have a directory with files dated from January 1, 2001. Several files are created each day. We probably have several hundred files. I want to delete all files OLDER than 90 days (I want to keep files that are 90 days before today &... (3 Replies)
Discussion started by: srolen
3 Replies

2. Shell Programming and Scripting

command find returned bash: /usr/bin/find: Argument list too long

Hello, I create a file touch 1201093003 fichcomp and inside a repertory (which hava a lot of files) I want to list all files created before this file : find *.* \! -maxdepth 1 - newer fichcomp but this command returned bash: /usr/bin/find: Argument list too long but i make a filter all... (1 Reply)
Discussion started by: yacsil
1 Replies

3. UNIX for Advanced & Expert Users

find command loops in a sun Solaris 8 cluster

It has happended twice the past 3 months. The find command which is the standard part of unix accounting script "dodisk", which searches directories to find out how much disk space a user has used. On a particular cluster of 6 servers, several file systems, the find command has twice used all... (2 Replies)
Discussion started by: scottman
2 Replies

4. Solaris

command to find free disk space on solaris

In linux df is the command to find free space what is the equivalent command in the Solaris (2 Replies)
Discussion started by: harishankar
2 Replies

5. Shell Programming and Scripting

Little bit weired : Find files in UNIX w/o using find or where command

Yes , I have to find a file in unix without using any find or where commands.Any pointers for the same would be very helpful as i am beginner in shell scritping and need a solution for the same. Thanks in advance. Regards Jatin Jain (10 Replies)
Discussion started by: jatin.jain
10 Replies

6. UNIX for Dummies Questions & Answers

how to find a file named vijay in a directory using find command

I need to find whether there is a file named vijay is there or not in folder named "opt" .I tried "ls *|grep vijay" but it showed permission problem. so i need to use find command (6 Replies)
Discussion started by: amirthraj_12
6 Replies

7. UNIX for Advanced & Expert Users

Command to find Hardware model in Solaris

Hi, I need a command to find the Hardware Model in Solaris 8,9,10,11. The command which I am using right now is: /usr/platform/`uname -i`/sbin/prtdiag The problem is in this output:- System Configuration: Sun Microsystems sun4u Netra T1 200 (UltraSPARC-IIe 500MHz) Here I am... (1 Reply)
Discussion started by: vineetd
1 Replies

8. Shell Programming and Scripting

find the rate of growing of filesystem

Hi, I need to find out the gigabytes/hour growth in filesystem.:confused: i am using df command for finding the filesystem size and free space every hour. But how can i find the increase in size per hour? :rolleyes: Do i have to store the last hour entries in a file and comapre with... (2 Replies)
Discussion started by: kichu
2 Replies

9. Shell Programming and Scripting

How to use grep & find command to find references to a particular file

Hi all , I'm new to unix I have a checked project , there exists a file called xxx.config . now my task is to find all the files in the checked out project which references to this xxx.config file. how do i use grep or find command . (2 Replies)
Discussion started by: Gangam
2 Replies

10. Shell Programming and Scripting

Find command works on Linux but fails on Solaris.

Hi, I am looking for a generic find command that works on both Linux and Solaris. I have the below command that works fine on Linux but fails on solaris.find /web/config -type f '(' -name '*.txt' -or -name '*.xml' -name '*.pro' ')' Fails on SunOS mysolaris 5.10 Generic_150400-61 sun4v sparc... (1 Reply)
Discussion started by: mohtashims
1 Replies
HTCACHECLEAN(8) 						   htcacheclean 						   HTCACHECLEAN(8)

NAME
htcacheclean - Clean up the disk cache SYNOPSIS
htcacheclean [ -D ] [ -v ] [ -t ] [ -r ] [ -n ] -ppath -llimit htcacheclean [ -n ] [ -t ] [ -i ] -dinterval -ppath -llimit SUMMARY
htcacheclean is used to keep the size of mod_disk_cache's storage within a certain limit. This tool can run either manually or in daemon mode. When running in daemon mode, it sleeps in the background and checks the cache directories at regular intervals for cached content to be removed. You can stop the daemon cleanly by sending it a TERM or INT signal. OPTIONS
-dinterval Daemonize and repeat cache cleaning every interval minutes. This option is mutually exclusive with the -D, -v and -r options. To shutdown the daemon cleanly, just send it a SIGTERM or SIGINT. -D Do a dry run and don't delete anything. This option is mutually exclusive with the -d option. -v Be verbose and print statistics. This option is mutually exclusive with the -d option. -r Clean thoroughly. This assumes that the Apache web server is not running (otherwise you may get garbage in the cache). This option is mutually exclusive with the -d option and implies the -t option. -n Be nice. This causes slower processing in favour of other processes. htcacheclean will sleep from time to time so that (a) the disk IO will be delayed and (b) the kernel can schedule other processes in the meantime. -t Delete all empty directories. By default only cache files are removed, however with some configurations the large number of directo- ries created may require attention. If your configuration requires a very large number of directories, to the point that inode or file allocation table exhaustion may become an issue, use of this option is advised. -ppath Specify path as the root directory of the disk cache. This should be the same value as specified with the CacheRoot directive. -llimit Specify limit as the total disk cache size limit. The value is expressed in bytes by default (or attaching B to the number). Attach K for Kbytes or M for MBytes. -i Be intelligent and run only when there was a modification of the disk cache. This option is only possible together with the -d option. EXIT STATUS
htcacheclean returns a zero status ("true") if all operations were successful, 1 otherwise. Apache HTTP Server 2008-05-06 HTCACHECLEAN(8)
All times are GMT -4. The time now is 09:15 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy