Finding largest files takes too long

 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Finding largest files takes too long
# 1  
Old 06-11-2018
Finding largest files takes too long

Good evening.

because the folder has thousand of files it takes too long and have some trouble to get the largest files and then compress files or delete it, for instance

Code:
find . -size +10000000c -exec ls -ld {} \; |sort -k5n | grep -v .gz

The above commad took an hour and i have to cancel it


Code:
du -sk * | sort -nr | more

secondly The above command took up some much time and got me root: args too long so it filed


Tried to compress some files but it took so long

Code:
nohup gzip log_HistoricoRecargas*201703*.log &

are there more efficient methods or commands to do this because i failed tried with these 3 choices
The operating system is SunOS

I appreciate your help in advanced
# 2  
Old 06-12-2018
If there are many many files, then any search trough them will take time, potentially a lot of time. If this is on a filesystems that is mounted over the network, then this time will be much greater. Far better to do the work when the disk really is.

Perhaps this may be slightly more efficient for you though:-
Code:
find . -type f -size +10000000c ! -name "*.gz" -ls | sort -bnk 7


Can you tell us more about what hardware you have?



Kind regards,
Robin
# 3  
Old 06-12-2018
Yes you are right, this a Filesyem mounted over a network

Code:
df -k 
10.80.1.83:/SCEL/logs1
                     37748736 29987224 7742352    88%    /SCEL/logs1

I dont have much infor about hardware just this;

Code:
SCEL /SCEL/logs1 # uname -a
SunOS prosclxxc 5.10 Generic_144488-01 sun4u sparc SUNW,SPARC-Enterprise

But if i run the sugested command there is a risk to compress logs from today i just want to compress logs from some day ago but not today.

I'd appreciate your help in advanced
# 4  
Old 06-12-2018
Hi,

You can modify rbatte1's command to:-

Code:
find . -type f -mtime +2 -size +10000000c ! -name "*.gz" -ls | sort -bnk 7

This will only deal with files older than two days.

Regards

Gull04
# 5  
Old 06-12-2018
You may create a list of filenames and sizes prior to having a closer look with different criteria. So the long running part - the reading of all file sizes is only being done once.

Example

1) Read the sizes

Code:
find / -type f -exec stat -c "%n %s" "{}" + >$HOME/files_sizes.txt



2) find the big files

Code:
awk '$2 > 1000000 { print $0 }' $HOME/file_sizes.txt

I've no knowledge with SunOS. The above commands may have slightly different syntax there.
# 6  
Old 06-12-2018
Can you sign on to the server at address 10.80.1.83 ? If you can, running your code there will be significantly faster that running over the network. This will be not just the searching, but the actual compression too. If you compress over the network, then you have to read the file across the network to your local memory, compress it and then write the resultant file back across the network to the server disk.

It really could be a massive difference in performance.


Robin
# 7  
Old 06-12-2018
Stomp - there is no stat command on vanilla SunOS. AFAIK. Since Oracle took over the Solaris freeware site died as well.

I think the OP also has another problem - Solaris 10 file systems (not ZFS) and earlier
all had a problem. If there are large numbers of files in a single directory, some file-related commands, notable is ls, bog down. A lot.

We had a directory with >30K small files in it. I fixed the performance problems by
moving files off the primary directory every day in a cron job. But still kept on the same file system. With about 5000 files performance was acceptable.

alexcol - please post the the output of a command the gives the physical size in bytes of the exact directory with the problem.

Since I do not know the name of the directory, here is an example, note the lowercase "d" in the command:
Code:
ls -ld  /path/to/directory

Please post the result so we can help

And if you happen to have too many individual files, regardless of size, on a file system then you can run out of inodes as well. This is pretty hard to do, but if the filesystem was created with unusual parameters this happens.
To see used inodes, try:
Code:
df -i /path/to/mountpoint

where mountpoint is the place in the file system where you interesting directory is mounted
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Script takes too long to complete

Hi, I have a lengthy script which i have trimmed down for a test case as below. more run.sh #!/bin/bash paths="allpath.txt" while IFS= read -r loc do echo "Working on $loc" startdir=$loc find "$startdir" -type f \( ! -name "*.log*" ! -name "*.class*" \) -print | while read file do... (8 Replies)
Discussion started by: mohtashims
8 Replies

2. Shell Programming and Scripting

Find command takes long

Hi, I am trying to search for a Directory called "mont" under a directory path "/opt/app/var/dumps" Although "mont" is in the very parent directory called "dumps" i.e "/opt/app/var/dumps/mont" and it can never be inside any Sub-Directory of "dumps"; my below find command which also checks... (5 Replies)
Discussion started by: mohtashims
5 Replies

3. UNIX for Advanced & Expert Users

Find command takes too long to complete

Hi, Below is my find command find /opt/app/websphere -name myfolder -perm -600 | wc -l At time it even takes 20 mins to complete. my OS is : SunOS mypc 5.10 Generic_150400-09 sun4v sparc SUNW,T5440 (10 Replies)
Discussion started by: mohtashims
10 Replies

4. UNIX and Linux Applications

database takes long time to process

Hi, we currently having a issue where when we send jobs to the server for the application lawson, it is taking a very long time to complete. here are the last few lines of the database log. 2012-09-18-10.35.55.707279-240 E244403536A576 LEVEL: Warning PID : 950492 ... (1 Reply)
Discussion started by: techy1
1 Replies

5. Shell Programming and Scripting

sort takes a long time

Dear experts I have a 200MG text file in this format: text \tab number I try to sort using options -fd and it takes very long! is that normal or I can speed it up in some ways? I dont want to split the file since this one is already splitted. I use this command: sort -fd file >... (12 Replies)
Discussion started by: voolek
12 Replies

6. UNIX for Dummies Questions & Answers

time how long it takes to load a module

Hello, like the title says, how can i measure the time it takes to load a module in Linux, and how how can i measure the time it takes to load a statically compiled module. /Best Regards Olle ---------- Post updated at 01:13 PM ---------- Previous update was at 11:54 AM ---------- For... (0 Replies)
Discussion started by: ollebanan
0 Replies

7. Linux

it takes long time to login on server

Hi, I am trying to login using ssh on Red Hat Linux 5 server, The password appears immediately but after I enter the password it takes about 90 seconds to login completely. Please suggest what changes require? Regards, Manoj (4 Replies)
Discussion started by: manoj.solaris
4 Replies

8. UNIX for Dummies Questions & Answers

finding largest files (not directories)?

hello all. i would like to be able to find the names of all files on a remote machine using ssh. i only want the names of files, not directories so far i'm stuck at "du -a | sort -n" also, is it possible to write them to a file on my machine? i know how to write it to a file on that... (2 Replies)
Discussion started by: user19190989
2 Replies

9. Shell Programming and Scripting

Killing a process that takes too long

Hello, I have a C program that takes anywhere from 5 to 100 arguments and I'd like to run it from a script that makes sure it doesnt take too long to execute. If the C program takes more than 5 seconds to execute, i would like the shell script to kill it and return a short message to the user. ... (3 Replies)
Discussion started by: WeezelDs
3 Replies

10. UNIX for Dummies Questions & Answers

Finding out how long a command takes to run

Hi I am trying to find out the best way to find out how long a command takes to run in miliseconds .. Is there such a way of doing this in Unix ? Thanks (3 Replies)
Discussion started by: cfoxwell
3 Replies
Login or Register to Ask a Question