Created
September 1, 2011 06:01
-
-
Save AshwinJay/1185555 to your computer and use it in GitHub Desktop.
Linux /dev/shm (Shared memory file system) write performance test
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package linuxfs; | |
import java.io.File; | |
import java.io.FileOutputStream; | |
import java.io.IOException; | |
import java.nio.channels.FileChannel; | |
/* | |
* Author: Ashwin Jayaprakash | |
*/ | |
public class FileOutTest { | |
public static void main(String[] args) throws Exception { | |
for (int i = 0; i < 25; i++) { | |
testOut(args[0]); | |
Thread.sleep(500); | |
} | |
} | |
private static void testOut(String fileName) throws IOException { | |
long startTime = System.nanoTime(); | |
long lengthBytes = testWrite(fileName); | |
long endTime = System.nanoTime(); | |
System.out.printf("Finished writing [%d] bytes in [%d] millis%n", lengthBytes, (endTime - startTime) / 1000000); | |
} | |
private static long testWrite(String arg) throws IOException { | |
File file = new File(arg); | |
file.delete(); | |
file.createNewFile(); | |
FileOutputStream fos = new FileOutputStream(file); | |
FileChannel fileChannel = fos.getChannel(); | |
for (int i = 0; i < 1024; i++) { | |
long number = System.nanoTime(); | |
for (int j = 0; j < 8; j++) { | |
fos.write(Long.toString(number).getBytes()); | |
number++; | |
} | |
if (i % 128 == 0) { | |
fileChannel.force(true); | |
System.out.printf(" Current length [%d] bytes%n", file.length()); | |
} | |
} | |
fos.close(); | |
return file.length(); | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
cloudera@cloudera-demo:~/shm-tests$ javac linuxfs/*.java | |
cloudera@cloudera-demo:~/shm-tests$ java -cp . linuxfs.FileOutTest /dev/shm/outtest.txt | grep Finished | |
Finished writing [114688] bytes in [153] millis | |
Finished writing [114688] bytes in [70] millis | |
Finished writing [114688] bytes in [61] millis | |
Finished writing [114688] bytes in [62] millis | |
Finished writing [114688] bytes in [61] millis | |
Finished writing [114688] bytes in [62] millis | |
Finished writing [114688] bytes in [59] millis | |
Finished writing [114688] bytes in [54] millis | |
Finished writing [114688] bytes in [52] millis | |
Finished writing [114688] bytes in [50] millis | |
Finished writing [114688] bytes in [52] millis | |
Finished writing [114688] bytes in [51] millis | |
Finished writing [114688] bytes in [49] millis | |
Finished writing [114688] bytes in [53] millis | |
Finished writing [114688] bytes in [55] millis | |
Finished writing [114688] bytes in [49] millis | |
Finished writing [114688] bytes in [56] millis | |
Finished writing [114688] bytes in [50] millis | |
Finished writing [114688] bytes in [51] millis | |
Finished writing [114688] bytes in [51] millis | |
Finished writing [114688] bytes in [52] millis | |
Finished writing [114688] bytes in [50] millis | |
Finished writing [114688] bytes in [51] millis | |
Finished writing [114688] bytes in [49] millis | |
Finished writing [114688] bytes in [51] millis | |
cloudera@cloudera-demo:~/shm-tests$ ls -lh /dev/shm/ | |
total 372K | |
-rw-r--r-- 1 cloudera cloudera 112K 2011-03-03 02:09 outtest.txt | |
.. .. | |
cloudera@cloudera-demo:~/shm-tests$ df -h /dev/shm/ | |
Filesystem Size Used Avail Use% Mounted on | |
none 502M 372K 501M 1% /dev/shm | |
cloudera@cloudera-demo:~/shm-tests$ mount -l | |
/dev/sda1 on / type ext4 (rw,errors=remount-ro) | |
... | |
none on /dev type devtmpfs (rw,mode=0755) | |
none on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620) | |
none on /dev/shm type tmpfs (rw,nosuid,nodev) | |
... | |
cloudera@cloudera-demo:~/shm-tests$ java -cp . linuxfs.FileOutTest /tmp/outtest.txt | grep Finished | |
Finished writing [114688] bytes in [565] millis | |
Finished writing [114688] bytes in [450] millis | |
Finished writing [114688] bytes in [461] millis | |
Finished writing [114688] bytes in [392] millis | |
Finished writing [114688] bytes in [482] millis | |
Finished writing [114688] bytes in [485] millis | |
Finished writing [114688] bytes in [399] millis | |
Finished writing [114688] bytes in [375] millis | |
Finished writing [114688] bytes in [376] millis | |
Finished writing [114688] bytes in [363] millis | |
Finished writing [114688] bytes in [390] millis | |
Finished writing [114688] bytes in [301] millis | |
Finished writing [114688] bytes in [382] millis | |
Finished writing [114688] bytes in [368] millis | |
Finished writing [114688] bytes in [372] millis | |
Finished writing [114688] bytes in [357] millis | |
Finished writing [114688] bytes in [415] millis | |
Finished writing [114688] bytes in [455] millis | |
Finished writing [114688] bytes in [422] millis | |
Finished writing [114688] bytes in [369] millis | |
Finished writing [114688] bytes in [431] millis | |
Finished writing [114688] bytes in [384] millis | |
Finished writing [114688] bytes in [419] millis | |
Finished writing [114688] bytes in [407] millis | |
Finished writing [114688] bytes in [309] millis | |
cloudera@cloudera-demo:~/tomcat-native$ ls -alh /tmp/outtest.txt | |
-rw-r--r-- 1 cloudera cloudera 112K 2011-03-03 02:09 /tmp/outtest.txt |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment