Sponsored Content
Top Forums UNIX for Advanced & Expert Users Help optimizing sort of large files Post 302924368 by Don Cragun on Saturday 8th of November 2014 02:13:34 PM
Old 11-08-2014
Quote:
Originally Posted by kogorman3
... ... ...

I surmise that the execution time is determined largely by the number of passes over the data. I am able to get that down to two passes on most of my datasets, and 3 at most. I did this by upping the limit on open files to the hard limit of 4096, and setting the batch size to 1000, plus setting the buffer size to 10 GB. I'm still experimenting to find a sweet spot.

... ... ...

My bash code now looks something like this:
Code:
ulimit -Sn hard
export TMPDIR=/mnt/h2/tmp
export LC_ALL=C
export SORT="--buffer-size=1000 --buffer-size=10g"

sort $SORT <infile> --output <outfile>

Did you perhaps intend to use:
Code:
export SORT="--batch-size=1000 --buffer-size=10g"

instead of setting the buffer size twice?
These 2 Users Gave Thanks to Don Cragun For This Post:
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Large files

I am trying to understand the webserver log file for an error which has occured on my live web site. The webserver access file is very big in size so it's not possible to open this file using vi editor. I know the approximate time the error occured, so i am interested in looking for the log file... (4 Replies)
Discussion started by: sehgalniraj
4 Replies

2. Shell Programming and Scripting

Large Text Files

Hi All I have approximately 10 files that are at least 100+ MB in size. I am importing them into a DB to output them to the web. What i need to do first is clean the files up so i dont have un necessary rows in the DB. Below is what the file looks like: Ignore the <TAB> annotations as that... (4 Replies)
Discussion started by: caddyjoe77
4 Replies

3. UNIX for Dummies Questions & Answers

large files?

How do we check 'large files' is enabled on a Unix box -- HP-UX B11.11 (2 Replies)
Discussion started by: ranj@chn
2 Replies

4. UNIX for Dummies Questions & Answers

Sort large file

I was wondering how sort works. Does file size and time to sort increase geometrically? I have a 5.3 billion line file I'd like to use with sort -u I'm wondering if that'll take forever because of a geometric expansion? If it takes 100 hours that's fine but not 100 days. Thanks so much. (2 Replies)
Discussion started by: dcfargo
2 Replies

5. Shell Programming and Scripting

a problem with large files

hello all, kindly i need your help, i made a script to print a specific lines from a huge file about 3 million line. the output of the script will be about 700,000 line...the problem is the script is too slow...it kept working for 5 days and the output was only 200,000 lines !!! the script is... (16 Replies)
Discussion started by: m_wassal
16 Replies

6. Shell Programming and Scripting

Divide large data files into smaller files

Hello everyone! I have 2 types of files in the following format: 1) *.fa >1234 ...some text... >2345 ...some text... >3456 ...some text... . . . . 2) *.info >1234 (7 Replies)
Discussion started by: ad23
7 Replies

7. UNIX for Dummies Questions & Answers

Speeding/Optimizing GREP search on CSV files

Hi all, I have problem with searching hundreds of CSV files, the problem is that search is lasting too long (over 5min). Csv files are "," delimited, and have 30 fields each line, but I always grep same 4 fields - so is there a way to grep just those 4 fields to speed-up search. Example:... (11 Replies)
Discussion started by: Whit3H0rse
11 Replies

8. Solaris

How to safely copy full filesystems with large files (10Gb files)

Hello everyone. Need some help copying a filesystem. The situation is this: I have an oracle DB mounted on /u01 and need to copy it to /u02. /u01 is 500 Gb and /u02 is 300 Gb. The size used on /u01 is 187 Gb. This is running on solaris 9 and both filesystems are UFS. I have tried to do it using:... (14 Replies)
Discussion started by: dragonov7
14 Replies

9. UNIX for Advanced & Expert Users

Script to sort the files and append the extension .sort to the sorted version of the file

Hello all - I am to this forum and fairly new in learning unix and finding some difficulty in preparing a small shell script. I am trying to make script to sort all the files given by user as input (either the exact full name of the file or say the files matching the criteria like all files... (3 Replies)
Discussion started by: pankaj80
3 Replies

10. Shell Programming and Scripting

Script to sort large file with frequency

Hello, I have a very large file of around 2 million records which has the following structure: I have used the standard awk program to sort: # wordfreq.awk --- print list of word frequencies { # remove punctuation #gsub(/_]/, "", $0) for (i = 1; i <= NF; i++) freq++ } END { for (word... (3 Replies)
Discussion started by: gimley
3 Replies
ulimit(1)						      General Commands Manual							 ulimit(1)

NAME
ulimit - Sets or reports a resource limit SYNOPSIS
ulimit [-HSacdfmnstvw] [limit] STANDARDS
Interfaces documented on this reference page conform to industry standards as follows: ulimit: XCU5.0, XBD5.0 Refer to the standards(5) reference page for more information about industry standards and associated tags. OPTIONS
[Tru64 UNIX] The limits specified for the resources are hard limits. A hard limit cannot be increased once it is set. [Tru64 UNIX] The limits specified for the resources are soft limits. A soft limit can be increased up to the value of the hard limit. [Tru64 UNIX] Lists all of the current resource limits. The limit operand is not permitted with this option. [Tru64 UNIX] The limit operand specifies the number of 512-byte blocks for core dumps. [Tru64 UNIX] The limit operand specifies the number of Kilobytes for the data area. The limit operand specifies the number of 512-byte blocks for files written by child processes (files of any size can be read). [Tru64 UNIX] The limit operand specifies the number of Kilobytes for the size of physical memory. [Tru64 UNIX] The limit operand specifies the number of file descriptors. [Tru64 UNIX] The limit operand specifies the number of Kilobytes for the stack area. [Tru64 UNIX] The limit op- erand specifies the number of seconds to be used by each process. [Tru64 UNIX] The limit operand specifies the number of Kilobytes for virtual memory. This option is supported only if RLIMIT_VMEM has been defined in /usr/include/sys/resource.h at compile-time. [Tru64 UNIX] The limit operand specifies the number of Kilobytes for the swap area. This option is supported only if RLIMIT_SWAP has been defined in /usr/include/sys/resource.h at compile-time. OPERANDS
If no options are specified, this is the number of 512 byte blocks to use as the new limit to file size. Otherwise, it is the limit applied to the resource indicatd by the option. [Tru64 UNIX] This operand is not allowed with the -a option. If this operand is omitted, the current limit for the indicated resource is reported. DESCRIPTION
This command sets, or reports, the limit on the size of system resources, as indicated by the option. [Tru64 UNIX] If neither the -H option nor the -S option is specified, the limit applies to both hard and soft limits. If only the -a option is specified, soft limits are reported. If there is no limit on a resource, the limit is reported as unlimited. NOTES
The ulimit command affects only the current execution environment, therefore it has no effect when run in a separate execution environment such as one of the following: nohup ulimit -f 10000 env ulimit 10000 RESTRICTIONS
Once a limit has been decreased, only a user with superuser privileges may increase it, even back to its original value. EXIT STATUS
The following exit values are returned: Successful completion. A request for a higher limit was rejected or an error occurred. EXAMPLES
To set the file size limit to 51,200 bytes, enter: ulimit -f 100 To report the current file size limit, enter: ulimit The following example displays all current resource limits: % ulimit -a time(seconds) unlimited file(blocks) unlimited data(kbytes) 131072 stack(kbytes) 2048 memory(kbytes) 84280 coredump(blocks) unlimited nofiles(descriptors) 4096 vmemory(kbytes) 1048576 ENVIRONMENT VARIABLES
The following environment variables affect the execution of ulimit: Provides a default value for the internationalization variables that are unset or null. If LANG is unset or null, the corresponding value from the default locale is used. If any of the internationalization variables contain an invalid setting, the utility behaves as if none of the variables had been defined. If set to a non-empty string value, overrides the values of all the other internationalization variables. Determines the locale for the interpretation of sequences of bytes of text data as characters (for example, single-byte as opposed to multibyte characters in arguments). Determines the locale for the format and contents of diagnostic messages written to standard error. Determines the location of message catalogues for the processing of LC_MESSAGES. SEE ALSO
Routines: ulimit(3) Standards: standards(5) ulimit(1)
All times are GMT -4. The time now is 01:14 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy