All of lore.kernel.org
 help / color / mirror / Atom feed
* Counters in df, du
@ 2009-07-13  8:11 Alexey Vlasov
  2009-07-13  9:09 ` Andi Kleen
  0 siblings, 1 reply; 11+ messages in thread
From: Alexey Vlasov @ 2009-07-13  8:11 UTC (permalink / raw)
  To: linux-kernel

[-- Attachment #1: Type: text/plain, Size: 804 bytes --]

Hi.

Periodically there is an overflow on /tmp on my boxes, and I can't find
the reaason why. May be it isn't a bug in tmpfs and you can help me find
the reason, and if it is an error, I hope you will help me to eliminate
it.

I know that df, du can show different values if some files were deleted,
but the processes which opened these files are still acting.

Well now I see this picture on one of my boxes. Below I post the results
of how I was trying to find what was /tmp full of.

# df -h /tmp
Filesystem            Size  Used Avail Use% Mounted on
tmpfs                 4.1G  3.3G  762M  82% /tmp

# du -hs /tmp
518M    /tmp

# lsof /tmp | awk '{if ($7 != 0) print$0}'
(in attach)

I still don't see any files taking 3G. Now I know only one solution
mount/remount /tmp.

-- 
BRGDS. Alexey Vlasov.

[-- Attachment #2: tmp.lsof --]
[-- Type: text/plain, Size: 1176 bytes --]

# lsof /tmp | awk '{if ($7 != 0) print$0}'
COMMAND     PID                           USER   FD   TYPE             DEVICE  SIZE      NODE NAME
authdaemo  6555                           root    5u  unix 0xffff81030b8c2840       281375180 /var/lib/courier/authdaemon/socket.tmp
authdaemo  6558                           root    5u  unix 0xffff81030b8c2840       281375180 /var/lib/courier/authdaemon/socket.tmp
authdaemo  6559                           root    5u  unix 0xffff81030b8c2840       281375180 /var/lib/courier/authdaemon/socket.tmp
authdaemo  6560                           root    5u  unix 0xffff81030b8c2840       281375180 /var/lib/courier/authdaemon/socket.tmp
authdaemo  6561                           root    5u  unix 0xffff81030b8c2840       281375180 /var/lib/courier/authdaemon/socket.tmp
authdaemo  6562                           root    5u  unix 0xffff81030b8c2840       281375180 /var/lib/courier/authdaemon/socket.tmp
mysqld    22905                          mysql    6u   REG               0,13    20 663938322 /tmp/ib1oZTSZ (deleted)
mysqld    22905                          mysql    8u   REG               0,13 84773 663938424 /tmp/ibRcarbD (deleted)

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Counters in df, du
  2009-07-13  8:11 Counters in df, du Alexey Vlasov
@ 2009-07-13  9:09 ` Andi Kleen
  2009-07-13 11:32   ` Alexey Vlasov
  0 siblings, 1 reply; 11+ messages in thread
From: Andi Kleen @ 2009-07-13  9:09 UTC (permalink / raw)
  To: Alexey Vlasov; +Cc: linux-kernel

Alexey Vlasov <renton@renton.name> writes:
>
> I know that df, du can show different values if some files were deleted,
> but the processes which opened these files are still acting.

You can check for that by doing ls -l /proc/*/fd | grep deleted

It won't tell you the file size though.

-Andi

-- 
ak@linux.intel.com -- Speaking for myself only.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Counters in df, du
  2009-07-13  9:09 ` Andi Kleen
@ 2009-07-13 11:32   ` Alexey Vlasov
  2009-07-13 11:59     ` [PATCH] Report file size for deleted files; was " Andi Kleen
  2009-07-13 13:54     ` Bryan Donlan
  0 siblings, 2 replies; 11+ messages in thread
From: Alexey Vlasov @ 2009-07-13 11:32 UTC (permalink / raw)
  To: Andi Kleen; +Cc: linux-kernel

On Mon, Jul 13, 2009 at 11:09:29AM +0200, Andi Kleen wrote:
> Alexey Vlasov <renton@renton.name> writes:
> >
> > I know that df, du can show different values if some files were deleted,
> > but the processes which opened these files are still acting.
> 
> You can check for that by doing ls -l /proc/*/fd | grep deleted
> 
> It won't tell you the file size though.

There comes a big list, like this:

lowx------ 1 root root 64 Jul 13 14:58 1763 -> /tmp/ZCUDXqiMTp (deleted)
lrwx------ 1 root root 64 Jul 13 14:58 1763 -> /tmp/ZCUDXqiMTp (deleted)
lrwx------ 1 root root 64 Jul 13 14:58 1763 -> /tmp/ZCUDXqiMTp (deleted)
[cut]
lrwx------ 1 root root 64 Jul 13 15:29 317 -> /tmp/ZCUDXiOHCk (deleted)
lrwx------ 1 root root 64 Jul 13 15:29 317 -> /tmp/ZCUDXiOHCk (deleted)
lrwx------ 1 root root 64 Jul 13 15:29 317 -> /tmp/ZCUDXiOHCk (deleted)

But you can see the file date, these are new files and by next search
you won't see them any more.

The most interesting is that the /tmp size constantly grows.

-- 
BRGDS. Alexey Vlasov.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH] Report file size for deleted files; was Re: Counters in df, du
  2009-07-13 11:32   ` Alexey Vlasov
@ 2009-07-13 11:59     ` Andi Kleen
  2009-07-13 13:13       ` Andreas Schwab
  2009-09-03 12:32       ` Alexey Vlasov
  2009-07-13 13:54     ` Bryan Donlan
  1 sibling, 2 replies; 11+ messages in thread
From: Andi Kleen @ 2009-07-13 11:59 UTC (permalink / raw)
  To: Alexey Vlasov; +Cc: Andi Kleen, linux-kernel, viro

> But you can see the file date, these are new files and by next search

I appended a patch that reports the size.

-Andi

---

VFS: Report file size for deleted files in /proc

It's useful to know how big deleted files are, in case a file system
is filled up unexpectedly and the admin wants to track down which
process is the culprit. This patch reports the file size 
in addition to (deleted) for /proc/*/fd links.

This modifies a public interface, but it's reasonable to assume
that noone relies on the particular format here.

Signed-off-by: Andi Kleen <ak@linux.intel.com>

---
 fs/dcache.c |   14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

Index: linux-2.6.31-rc1-ak/fs/dcache.c
===================================================================
--- linux-2.6.31-rc1-ak.orig/fs/dcache.c
+++ linux-2.6.31-rc1-ak/fs/dcache.c
@@ -1910,9 +1910,19 @@ char *__d_path(const struct path *path,
 
 	spin_lock(&vfsmount_lock);
 	prepend(&end, &buflen, "\0", 1);
-	if (d_unlinked(dentry) &&
-		(prepend(&end, &buflen, " (deleted)", 10) != 0))
+	if (d_unlinked(dentry)) {
+		char buf[40];
+		int n;
+		if (dentry->d_inode) { /* check needed? */
+			n = snprintf(buf, sizeof buf, " (deleted; size %lluK)",
+					dentry->d_inode->i_size >> 10);
+		} else {
+			strcpy(buf, " (deleted)");
+			n = 10;
+		}
+		if (prepend(&end, &buflen, buf, n) != 0)
 			goto Elong;
+	}
 
 	if (buflen < 1)
 		goto Elong;

-- 
ak@linux.intel.com -- Speaking for myself only.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] Report file size for deleted files; was Re: Counters in df, du
  2009-07-13 11:59     ` [PATCH] Report file size for deleted files; was " Andi Kleen
@ 2009-07-13 13:13       ` Andreas Schwab
  2009-07-13 13:20         ` Andi Kleen
  2009-09-03 12:32       ` Alexey Vlasov
  1 sibling, 1 reply; 11+ messages in thread
From: Andreas Schwab @ 2009-07-13 13:13 UTC (permalink / raw)
  To: Andi Kleen; +Cc: Alexey Vlasov, linux-kernel, viro

Andi Kleen <andi@firstfloor.org> writes:

>> But you can see the file date, these are new files and by next search
>
> I appended a patch that reports the size.

You can get the size already by using stat instead of lstat, ie. use ls -lL.

Andreas.

-- 
Andreas Schwab, schwab@redhat.com
GPG Key fingerprint = D4E8 DBE3 3813 BB5D FA84  5EC7 45C6 250E 6F00 984E
"And now for something completely different."

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] Report file size for deleted files; was Re: Counters in df, du
  2009-07-13 13:13       ` Andreas Schwab
@ 2009-07-13 13:20         ` Andi Kleen
  0 siblings, 0 replies; 11+ messages in thread
From: Andi Kleen @ 2009-07-13 13:20 UTC (permalink / raw)
  To: Andreas Schwab; +Cc: Andi Kleen, Alexey Vlasov, linux-kernel, viro

On Mon, Jul 13, 2009 at 03:13:09PM +0200, Andreas Schwab wrote:
> Andi Kleen <andi@firstfloor.org> writes:
> 
> >> But you can see the file date, these are new files and by next search
> >
> > I appended a patch that reports the size.
> 
> You can get the size already by using stat instead of lstat, ie. use ls -lL.

True, on the other hand you need two passes because that doesn't give
you file names. So the patch would be still more convenient.

-Andi

-- 
ak@linux.intel.com -- Speaking for myself only.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Counters in df, du
  2009-07-13 11:32   ` Alexey Vlasov
  2009-07-13 11:59     ` [PATCH] Report file size for deleted files; was " Andi Kleen
@ 2009-07-13 13:54     ` Bryan Donlan
  2009-07-13 19:55       ` Alexey Vlasov
  1 sibling, 1 reply; 11+ messages in thread
From: Bryan Donlan @ 2009-07-13 13:54 UTC (permalink / raw)
  To: Alexey Vlasov; +Cc: Andi Kleen, linux-kernel

2009/7/13 Alexey Vlasov <renton@renton.name>:
> On Mon, Jul 13, 2009 at 11:09:29AM +0200, Andi Kleen wrote:
>> Alexey Vlasov <renton@renton.name> writes:
>> >
>> > I know that df, du can show different values if some files were deleted,
>> > but the processes which opened these files are still acting.
>>
>> You can check for that by doing ls -l /proc/*/fd | grep deleted
>>
>> It won't tell you the file size though.
>
> There comes a big list, like this:
>
> lowx------ 1 root root 64 Jul 13 14:58 1763 -> /tmp/ZCUDXqiMTp (deleted)
> lrwx------ 1 root root 64 Jul 13 14:58 1763 -> /tmp/ZCUDXqiMTp (deleted)
> lrwx------ 1 root root 64 Jul 13 14:58 1763 -> /tmp/ZCUDXqiMTp (deleted)
> [cut]
> lrwx------ 1 root root 64 Jul 13 15:29 317 -> /tmp/ZCUDXiOHCk (deleted)
> lrwx------ 1 root root 64 Jul 13 15:29 317 -> /tmp/ZCUDXiOHCk (deleted)
> lrwx------ 1 root root 64 Jul 13 15:29 317 -> /tmp/ZCUDXiOHCk (deleted)
>
> But you can see the file date, these are new files and by next search
> you won't see them any more.
>
> The most interesting is that the /tmp size constantly grows.

Try:

lsof -n | grep deleted

This will show the process holding them more easily, and the file size
(in the seventh column). It won't show the date they were opened
though.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Counters in df, du
  2009-07-13 13:54     ` Bryan Donlan
@ 2009-07-13 19:55       ` Alexey Vlasov
  2009-07-13 19:58         ` Bryan Donlan
  0 siblings, 1 reply; 11+ messages in thread
From: Alexey Vlasov @ 2009-07-13 19:55 UTC (permalink / raw)
  To: Bryan Donlan; +Cc: Andi Kleen, linux-kernel

On Mon, Jul 13, 2009 at 09:54:22AM -0400, Bryan Donlan wrote:
> >> Alexey Vlasov <renton@renton.name> writes:
> >> >
> >> > I know that df, du can show different values if some files were deleted,
> >> > but the processes which opened these files are still acting.
> >>
> >> You can check for that by doing ls -l /proc/*/fd | grep deleted
> >>
> >> It won't tell you the file size though.
> >
> > There comes a big list, like this:
> >
> > lowx------ 1 root root 64 Jul 13 14:58 1763 -> /tmp/ZCUDXqiMTp (deleted)
> >
> > The most interesting is that the /tmp size constantly grows.
> 
> lsof -n | grep deleted

# lsof -n /tmp | awk '/deleted/ {if ($7 != 0) print$0}'

mysqld    22905                          mysql    6u   REG
0,13    20 663938322 /tmp/ib1oZTSZ (deleted)
mysqld    22905                          mysql    8u   REG
0,13 84773 663938424 /tmp/ibRcarbD (deleted)

# df -h /tmp
Filesystem            Size  Used Avail Use% Mounted on
tmpfs                 4.1G  3.4G  630M  85% /tmp

It will soon be up to 100% full and I'll have to remount.

-- 
BRGDS. Alexey Vlasov.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Counters in df, du
  2009-07-13 19:55       ` Alexey Vlasov
@ 2009-07-13 19:58         ` Bryan Donlan
  2009-07-13 20:11           ` Alexey Vlasov
  0 siblings, 1 reply; 11+ messages in thread
From: Bryan Donlan @ 2009-07-13 19:58 UTC (permalink / raw)
  To: Alexey Vlasov; +Cc: Andi Kleen, linux-kernel

2009/7/13 Alexey Vlasov <renton@renton.name>:
> On Mon, Jul 13, 2009 at 09:54:22AM -0400, Bryan Donlan wrote:
>> >> Alexey Vlasov <renton@renton.name> writes:
>> >> >
>> >> > I know that df, du can show different values if some files were deleted,
>> >> > but the processes which opened these files are still acting.
>> >>
>> >> You can check for that by doing ls -l /proc/*/fd | grep deleted
>> >>
>> >> It won't tell you the file size though.
>> >
>> > There comes a big list, like this:
>> >
>> > lowx------ 1 root root 64 Jul 13 14:58 1763 -> /tmp/ZCUDXqiMTp (deleted)
>> >
>> > The most interesting is that the /tmp size constantly grows.
>>
>> lsof -n | grep deleted
>
> # lsof -n /tmp | awk '/deleted/ {if ($7 != 0) print$0}'
>
> mysqld    22905                          mysql    6u   REG
> 0,13    20 663938322 /tmp/ib1oZTSZ (deleted)
> mysqld    22905                          mysql    8u   REG
> 0,13 84773 663938424 /tmp/ibRcarbD (deleted)
>
> # df -h /tmp
> Filesystem            Size  Used Avail Use% Mounted on
> tmpfs                 4.1G  3.4G  630M  85% /tmp
>
> It will soon be up to 100% full and I'll have to remount.

Are those the only two results? That should only be adding up to ~84kb
of space...

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Counters in df, du
  2009-07-13 19:58         ` Bryan Donlan
@ 2009-07-13 20:11           ` Alexey Vlasov
  0 siblings, 0 replies; 11+ messages in thread
From: Alexey Vlasov @ 2009-07-13 20:11 UTC (permalink / raw)
  To: Bryan Donlan; +Cc: Andi Kleen, linux-kernel

On Mon, Jul 13, 2009 at 03:58:36PM -0400, Bryan Donlan wrote:
> 2009/7/13 Alexey Vlasov <renton@renton.name>:
> > # lsof -n /tmp | awk '/deleted/ {if ($7 != 0) print$0}'
> >
> > mysqld    22905                          mysql    6u   REG
> > 0,13    20 663938322 /tmp/ib1oZTSZ (deleted)
> > mysqld    22905                          mysql    8u   REG
> > 0,13 84773 663938424 /tmp/ibRcarbD (deleted)
> >
> > # df -h /tmp
> > Filesystem            Size  Used Avail Use% Mounted on
> > tmpfs                 4.1G  3.4G  630M  85% /tmp
> 
> Are those the only two results? That should only be adding up to ~84kb
> of space...

Yes, only two lines where the 7-th column isn't equal to 0

-- 
BRGDS. Alexey Vlasov.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] Report file size for deleted files; was Re: Counters in df, du
  2009-07-13 11:59     ` [PATCH] Report file size for deleted files; was " Andi Kleen
  2009-07-13 13:13       ` Andreas Schwab
@ 2009-09-03 12:32       ` Alexey Vlasov
  1 sibling, 0 replies; 11+ messages in thread
From: Alexey Vlasov @ 2009-09-03 12:32 UTC (permalink / raw)
  To: Andi Kleen; +Cc: linux-kernel, viro

Hi Andi Kleen.

Patch can hardly hellp, because there is another problem. Proc shows
neither the size of deleted files, nor what he's full with /tmp.

On Mon, Jul 13, 2009 at 01:59:17PM +0200, Andi Kleen wrote:
> > But you can see the file date, these are new files and by next search
> 
> I appended a patch that reports the size.
> 
> -Andi
> 
> ---
> 
> VFS: Report file size for deleted files in /proc
> 
> It's useful to know how big deleted files are, in case a file system
> is filled up unexpectedly and the admin wants to track down which
> process is the culprit. This patch reports the file size 
> in addition to (deleted) for /proc/*/fd links.
> 
> This modifies a public interface, but it's reasonable to assume
> that noone relies on the particular format here.
> 
> Signed-off-by: Andi Kleen <ak@linux.intel.com>
> 
> ---
>  fs/dcache.c |   14 ++++++++++++--
>  1 file changed, 12 insertions(+), 2 deletions(-)
> 
> Index: linux-2.6.31-rc1-ak/fs/dcache.c
> ===================================================================
> --- linux-2.6.31-rc1-ak.orig/fs/dcache.c
> +++ linux-2.6.31-rc1-ak/fs/dcache.c
> @@ -1910,9 +1910,19 @@ char *__d_path(const struct path *path,
>  
>  	spin_lock(&vfsmount_lock);
>  	prepend(&end, &buflen, "\0", 1);
> -	if (d_unlinked(dentry) &&
> -		(prepend(&end, &buflen, " (deleted)", 10) != 0))
> +	if (d_unlinked(dentry)) {
> +		char buf[40];
> +		int n;
> +		if (dentry->d_inode) { /* check needed? */
> +			n = snprintf(buf, sizeof buf, " (deleted; size %lluK)",
> +					dentry->d_inode->i_size >> 10);
> +		} else {
> +			strcpy(buf, " (deleted)");
> +			n = 10;
> +		}
> +		if (prepend(&end, &buflen, buf, n) != 0)
>  			goto Elong;
> +	}
>  
>  	if (buflen < 1)
>  		goto Elong;
> 
> -- 
> ak@linux.intel.com -- Speaking for myself only.

-- 
BRGDS. Alexey Vlasov.

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2009-09-03 12:54 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-07-13  8:11 Counters in df, du Alexey Vlasov
2009-07-13  9:09 ` Andi Kleen
2009-07-13 11:32   ` Alexey Vlasov
2009-07-13 11:59     ` [PATCH] Report file size for deleted files; was " Andi Kleen
2009-07-13 13:13       ` Andreas Schwab
2009-07-13 13:20         ` Andi Kleen
2009-09-03 12:32       ` Alexey Vlasov
2009-07-13 13:54     ` Bryan Donlan
2009-07-13 19:55       ` Alexey Vlasov
2009-07-13 19:58         ` Bryan Donlan
2009-07-13 20:11           ` Alexey Vlasov

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.