Zfs list on solaris express 11 always reads from disk (metadata not cached)

Hello All,
I am migrating from OpenSolaris 2009.11 to SolarisExpress 11.
I noticed that "zfs list" takes longer than usual, and is not instant. I then discovered via a combination of arcstat.pl and iostat -xnc 2 that every time a list command is issued, there are disk reads. This leads me to believe that some metadata is not getting cached.
This is not the case in OpenSolaris where repeated "zfs list" do not cause disk reads.
Has anyone observed this, and do you know of any solution?
This is on an IDLE sustem with 48 GB of RAM - with plenty of free memory.

Hi Steve,
Great info again. I am still new to dtrace, particularly navigating probes and etc. I've seen that navigation tree before.
I would like to start by answering your questions:
Q) Have you implemented any ARC tuning to limit the ARC?
-> No out of the box config
Q) Are you running short on memory? (the memstat above should tell you)
-> Definetelly not. I have 48 GB ram, ARC grows to about 38 GB and then stops growing. I can reproduce problem at boot at will with only 8GB used. Nothing is getting aged out of the ARC at that time. Only those metadata reads never get stored.
Q) Are any of your fileystems over 70% full?
-> No. I am curious, what changes when this happens? Particularly in regards to ARC - perhaps another discussion, I don't want to distract this subject.
Q) Have you altered what data is/is not cached? ($ zfs get primarycache)
-> No - everything should be cached. I also have recently added l2cache (80GB). The metadata is not cached there neither.
I am not yet familiar with dtrace processing capabilities, thus I had to parse output via perl. Notice how each execution has the exact same number of misses. This is due to the fact that these particular datablocks (metadata blocks) are not cached in the arc at all:
:~/dtrace# perl -MData::Dumper -e 'while (<>) {if (/.+(:arc-hit|:arc-miss).*/) { $h{$1}+=1}} print Dumper \%h' ^C
:~/dtrace# ./zfs_list.d -c 'zfs list' |perl -MData::Dumper -e 'while (<>) {if (/.+(:arc-hit|:arc-miss).*/) { $h{$1}+=1}} print Dumper \%h'
dtrace: script './zfs_list.d' matched 4828 probes
dtrace: pid 11021 has exited
$VAR1 = {
          ':arc-hit' => 2,
          ':arc-miss' => 192
:~/dtrace# ./zfs_list.d -c 'zfs list' |perl -MData::Dumper -e 'while (<>) {if (/.+(:arc-hit|:arc-miss).*/) { $h{$1}+=1}} print Dumper \%h'
dtrace: script './zfs_list.d' matched 4828 probes
dtrace: pid 11026 has exited
$VAR1 = {
          ':arc-hit' => 1,
          ':arc-miss' => 192
:~/dtrace# ./zfs_list.d -c 'zfs list' |perl -MData::Dumper -e 'while (<>) {if (/.+(:arc-hit|:arc-miss).*/) { $h{$1}+=1}} print Dumper \%h'
dtrace: script './zfs_list.d' matched 4828 probes
dtrace: pid 11031 has exited
$VAR1 = {
          ':arc-hit' => 12,
          ':arc-miss' => 192
:~/dtrace# ./zfs_list.d -c 'zfs list' |perl -MData::Dumper -e 'while (<>) {if (/.+(:arc-hit|:arc-miss).*/) { $h{$1}+=1}} print Dumper \%h'
dtrace: script './zfs_list.d' matched 4828 probes
dtrace: pid 11036 has exited
$VAR1 = {
          ':arc-hit' => 4,
          ':arc-miss' => 192
:~/dtrace# ./zfs_list.d -c 'zfs list' |perl -MData::Dumper -e 'while (<>) {if (/.+(:arc-hit|:arc-miss).*/) { $h{$1}+=1}} print Dumper \%h'
dtrace: script './zfs_list.d' matched 4828 probes
dtrace: pid 11041 has exited
$VAR1 = {
          ':arc-hit' => 27,
          ':arc-miss' => 192
:~/dtrace# I presume next steps would be to perform stack analysis on which blocks are been not cached. I don't know how to do this ... I am guessing this is a mid-function probe? "| arc_read_nolock:arc-miss" I don't know how to access it's parameters.
FYI, here's an example of a cache miss in my zfs list:
  0  -> arc_read                             
  0    -> arc_read_nolock                    
  0      -> spa_guid                         
  0      <- spa_guid                         
  0      -> buf_hash_find                    
  0        -> buf_hash                       
  0        <- buf_hash                       
  0      <- buf_hash_find                    
  0      -> add_reference                    
  0      <- add_reference                    
  0      -> buf_cons                         
  0        -> arc_space_consume              
  0        <- arc_space_consume              
  0      <- buf_cons                         
  0      -> arc_get_data_buf                 
  0        -> arc_adapt                      
  0          -> arc_reclaim_needed           
  0          <- arc_reclaim_needed           
  0        <- arc_adapt                      
  0        -> arc_evict_needed               
  0          -> arc_reclaim_needed           
  0          <- arc_reclaim_needed           
  0        <- arc_evict_needed               
  0        -> zio_buf_alloc                  
  0        <- zio_buf_alloc                  
  0        -> arc_space_consume              
  0        <- arc_space_consume              
  0      <- arc_get_data_buf                 
  0      -> arc_access                       
  0       | arc_access:new_state-mfu         
  0        -> arc_change_state               
  0        <- arc_change_state               
  0      <- arc_access                       
  0     | arc_read_nolock:arc-miss           
  0     | arc_read_nolock:l2arc-miss 
  0      -> zio_read                         
  0        -> zio_create                     
  0          -> zio_add_child                
  0          <- zio_add_child                
  0        <- zio_create                     
  0      <- zio_read                         
  0      -> zio_nowait                       
  0        -> zio_unique_parent              
  0          -> zio_walk_parents             
  0          <- zio_walk_parents             
  0          -> zio_walk_parents             
  0          <- zio_walk_parents             
  0        <- zio_unique_parent              
  0        -> zio_execute                    
  0          -> zio_read_bp_init             
  0            -> zio_buf_alloc              
  0            <- zio_buf_alloc              
  0            -> zio_push_transform         
  0            <- zio_push_transform         
  0          <- zio_read_bp_init             
  0          -> zio_ready                    
  0            -> zio_wait_for_children      
  0            <- zio_wait_for_children      
  0            -> zio_wait_for_children      
  0            <- zio_wait_for_children      
  0            -> zio_walk_parents           
  0            <- zio_walk_parents           
  0            -> zio_walk_parents           
  0            <- zio_walk_parents           
  0            -> zio_notify_parent          
  0            <- zio_notify_parent          
  0          <- zio_ready                    
  0          -> zio_taskq_member             
  0          <- zio_taskq_member             
  0          -> zio_vdev_io_start            
  0            -> spa_config_enter           
  0            <- spa_config_enter           
  0            -> vdev_mirror_io_start       
  0              -> vdev_mirror_map_alloc    
  0                -> spa_get_random         
  0                <- spa_get_random         
  0                -> vdev_lookup_top        
  0                <- vdev_lookup_top        
  0              <- vdev_mirror_map_alloc    
  0              -> vdev_mirror_child_select 
  0                -> vdev_readable          
  0                  -> vdev_is_dead         
  0                  <- vdev_is_dead         
  0                <- vdev_readable          
  0                -> vdev_dtl_contains      
  0                <- vdev_dtl_contains      
  0              <- vdev_mirror_child_select 
  0              -> zio_vdev_child_io        
  0                -> zio_create             
  0                  -> zio_add_child        
  0                  <- zio_add_child        
  0                <- zio_create             
  0              <- zio_vdev_child_io        
  0              -> zio_nowait               
  0                -> zio_execute            
  0                  -> zio_vdev_io_start    
  0                    -> spa_syncing_txg    
  0                    <- spa_syncing_txg    
  0                    -> zio_buf_alloc      
  0                    <- zio_buf_alloc      
  0                    -> zio_push_transform 
  0                    <- zio_push_transform 
  0                    -> vdev_mirror_io_start
  0                      -> vdev_mirror_map_alloc
  0                      <- vdev_mirror_map_alloc
  0                      -> vdev_mirror_child_select
  0                        -> vdev_readable  
  0                          -> vdev_is_dead 
  0                          <- vdev_is_dead 
  0                        <- vdev_readable  
  0                        -> vdev_dtl_contains
  0                        <- vdev_dtl_contains
  0                      <- vdev_mirror_child_select
  0                      -> zio_vdev_child_io
  0                        -> zio_create     
  0                          -> zio_add_child
  0                          <- zio_add_child
  0                        <- zio_create     
  0                      <- zio_vdev_child_io
  0                      -> zio_nowait       
  0                        -> zio_execute    
  0                          -> zio_vdev_io_start
  0                            -> vdev_cache_read
  0                              -> vdev_cache_allocate
  0                              <- vdev_cache_allocate
  0                            <- vdev_cache_read
  0                            -> vdev_queue_io
  0                              -> vdev_queue_io_add
  0                              <- vdev_queue_io_add
  0                              -> vdev_queue_io_to_issue
  0                                -> vdev_queue_io_remove
  0                                <- vdev_queue_io_remove
  0                              <- vdev_queue_io_to_issue
  0                            <- vdev_queue_io
  0                            -> vdev_accessible
  0                              -> vdev_is_dead
  0                              <- vdev_is_dead
  0                            <- vdev_accessible
  0                            -> vdev_disk_io_start
  0                            <- vdev_disk_io_start
  0                          <- zio_vdev_io_start
  0                        <- zio_execute    
  0                      <- zio_nowait       
  0                    <- vdev_mirror_io_start
  0                  <- zio_vdev_io_start    
  0                  -> zio_vdev_io_done     
  0                    -> zio_wait_for_children
  0                    <- zio_wait_for_children
  0                  <- zio_vdev_io_done     
  0                <- zio_execute            
  0              <- zio_nowait               
  0            <- vdev_mirror_io_start       
  0          <- zio_vdev_io_start            
  0          -> zio_vdev_io_done             
  0            -> zio_wait_for_children      
  0            <- zio_wait_for_children      
  0          <- zio_vdev_io_done             
  0        <- zio_execute                    
  0      <- zio_nowait                       
  0    <- arc_read_nolock                    
  0  <- arc_read                              I've compared the output of a single-non cached metadata read, to a single read from filesystem by running dd and read from a file that is not in the cache. The only difference in the stack is that the non-cached reads are missing:
  0                                -> vdev_queue_offset_compare
  0                                <- vdev_queue_offset_compare This is called in "-> vdev_queue_io_to_issue ". But I don't think this is relevant, perhaps related to metadata vs file data read.
What do you think should be next?

Similar Messages

  • I'm unable to open up Lightroom 5, I get this message in a pop up box: "Lightroom encountered an error when reading from it's preview cache and needs to quit" Underneath  that is "Lightroom will attempt to fix this problem the next time when it launches."

    I'm unable to open up Lightroom 5, I get this message in a pop up box: "Lightroom encountered an error when reading from it's preview cache and needs to quit" Underneath  that is "Lightroom will attempt to fix this problem the next time when it launches."  It hasn't, what should I do? Thanks Shawn (Irish Se7en) .

    Can you try to rename (not delete!) the folder named "YOUR_CATALOG_NAME Previews.lrdata" and restart Lightroom?

  • I would like to use slideshow in lightroom to export my video as a full screen 1920x1080 video with text overlays.  I am using text overlay in lightroom as it reads from the metadata that is easy for me to input in the library screen.  When i export from

    I would like to use slideshow in lightroom to export my video as a full screen 1920x1080 video with text overlays.  I am using text overlay in lightroom as it reads from the metadata that is easy for me to input in the library screen.  When i export from lightroom slideshow and choose the 1920x1080 resolution the end product is a very small video in the middle of a black background.  i have double checked and do not have any borders turned on.  Another option would be to export from the library but lr mogrify does not seem to put text overlays on video either.  Any input would be welcome.

    I dont understand anything you said in your post.
    Do you have a specific question about video production?
    The forums are for individual technical or creative issues that users have with video production. I am sur someone will be able to help you, but and to get a response it is best to ask a specific question.
    Is this about a technical problem you have or something about setting up a web site? If its the latter this is the wrong forum.

  • When opening the program LR 5 encounters an error when reading from it's preview cache.

    When opening the program LR 5 encounters an error when reading from it's preview cache. It says it will correct the problem when it re opens. Why does this happen and how do I correct it?

    It means there is an issue with the preview cache.
    If it persists after closing and re-opening Lightroom then you will need to delete the preview folder.
    There is no permanent harm and Lightroom will regenerate the previews on an asneeded basis or the whole image collection if you ask it.
    The previews folder exists in the Lightroom folder and has the name "Your catalog name PREVIEW.LRDATA".
    Make sure it is the the correct folder before deleting it.
    Tony Jay

  • When I go to open lightroom a message pops up and says "lightroom encountered an error when reading from it's preview cache and needs to quit" I have already restarted my computer, that didn't do anything. I then uninstalled and then reinstalled and still

    When I go to open lightroom a message pops up and says "lightroom encountered an error when reading from it's preview cache and needs to quit" I have already restarted my computer, that didn't do anything. I then uninstalled and then reinstalled and still getting the same response.

    Open the folder containing your Lightroom catalog. Locate a folder with the extension .lrdata and delete that folder. Do not delete anything else. Then restart Lightroom. It will start building a new previews folder.

  • Problem With Parallels Reading From Disk Drive

    When I am using the Windows 7 virtual machine on Parallels, I can't read from the built-in CD-DVD player.
    I'm trying to install MS Office 2010. When I insert the disk, it begins spinning and sounds like it's trying to read it but after a while it stops without anything coming up. I already have checked the devices menu and tried the "Default CD/DVD" choice and the "OPTIARC DVD RW AD-5680H" choice from the "CD/DVD 1" menu. Neither of them work. When I tried the "OPTIARC" one, the cursor flickered to the reading-from-disk sprite for a split second.
    Any help with this problem would be greatly appreciated.

    When I am using the Windows 7 virtual machine on Parallels, I can't read from the built-in CD-DVD player.
    I'm trying to install MS Office 2010. When I insert the disk, it begins spinning and sounds like it's trying to read it but after a while it stops without anything coming up. I already have checked the devices menu and tried the "Default CD/DVD" choice and the "OPTIARC DVD RW AD-5680H" choice from the "CD/DVD 1" menu. Neither of them work. When I tried the "OPTIARC" one, the cursor flickered to the reading-from-disk sprite for a split second.
    Any help with this problem would be greatly appreciated.

  • Need to re-install CS5.5 on my new hard drive. Serial number from disk package not working.

    I need to re-install CS5.5 on my new hard drive. Serial number from disk package not working.

    if there's a problem with the number of installations, you'll see a message about an excess activation problem.
    if that's what you're seeing, contact adobe support for an activation count reset, https://helpx.adobe.com/contact.html
    otherwise, attach a screenshot of the error message or quote it.

  • Error : Reading from Aggregation Level not permitted

    Hello Gurus,
          Could somebody please give some help or advice regarding this?
    I have a multiprovider on a regular cube and an aggregation level, for some reason the multicube gives me the following error message when I try to display data using listcube.
    Reading from Aggregation Level is not permitted
    Message no. RSPLS801
    Also the  Query on the multicube does not display data for any of the KF's in the Agg Level but when I create a query on the Agg level itself it is fine.
    Any suggestions?
    Thanks.
    Swaroop.
    Edited by: Swaroop Chandra on Dec 10, 2009 7:29 PM

    Hi,
    transaction LISTCUBE does not support all InfoProviders, e.g. aggregation level are not supported. LISTCUBE is a 'low level' to read data from the BW persistence layer, e.g. InfoCubes. Since aggregation level always read transaction data via the so called planning buffer and the planning buffer technically is a special OLAP query LISTCUBE does not support aggregation level.
    Regards,
    Gregor

  • Airport Express streams Airplay from iMac but not from Windows 7 PC

    I have a wireless network set up using a Linksys WRT45G2 v1 router. There is one iMac running Snow Leopard, one laptop running 32 bit Windows 7 Ultimate and one desktop running 64 bit Windows 7 Ultimate. The router is set to WPA2 Personal TKIP+AES security. The Airport Express is set to WPA2 Personal. Its wireless mode is "join a wireless network." It is running firmware version 6.3. The iMac and the laptop are running iTunes 9 and the desktop is running iTunes 10.
    Up until recently I was able to stream music from the iMac and the desktop but not the laptop to remote speakers using airtunes via the airport express. Then the video processor in my desktop PC failed and in the course of diagnostic testing I had to reinstall the OS. After replacing the video card and reinstalling the OS, I tried to reconnect Airport Express to iTunes on the desktop PC but Airport Utility could not find the Airport Express. I returned the Airport Express to factory settings and tried again. The PC still did not recognize the Airport Express. I couldn't use the PC to reconfigure the Airport Express, but the iMac did see it so I reconfigured the Airport Express using the iMac. Now I can stream music using Airport Express from the iMac ONLY.
    When I use the Airport Utility to scan on the desktop or the laptop PCs it does not see the Airport Express. I can, however, see the Airport Express and read its configuration using Airport Utility on both PCs by using "configure other..." under the File tab (i.e. by typing in the IP number and password for the Airport Express.) Even though I can read the configuration and save it, iTunes does not recognize any remote speakers and I cannot stream music from either PC.
    I have tried turning off ALL wireless security as well as all firewalls. I also tried both iTunes 9 and iTunes 10 on the desktop. Nothing makes any difference.
    Before I could at least stream from desktop even though I had never been able to get the laptop to stream.
    Can anyone suggest a way to get Airtunes (Airplay) to work from my PCs?

    I have had the same issue. Airplay working with all devices apart from one windows 7 (the actual media server) and have spent over a week trying to resolve it.
    This worked for me.
    Turn off windows firewall and in my instance macafee. Be warned while macafee says that it's off there are services running all the time.
    You will need to open macafee settings and turn off access protection first
    Then search services from start bar
    Open services and filter by manufacturer
    Stoop all macafee services
    Right click the start bar
    Open task manager
    Stop all macafee processes
    Try your airport utility you should now see your express
    If you can you will see your icon in iTunes
    This pores that it's likely to be a macafee issues. Of course you do not want to leave the firewall off so I installed macafee and installed a fresh copy turning both the windows and macafee firewall on with no resultant issues
    Hope this helps

  • Guarantee read from disk [not cache]?

    Is there a way to guarantee a read from a disk file rather than system cache? I am aware of the FileDescriptor.sync( ) method, but does this really work - and on all platforms? I am having my doubts. In the documentation, it seems that as long as a SyncFailedException is not thrown, the read is "sync'ed with" the device, which I interpret as "read from or written to" the device, but as I said I'm having my doubts.
    Anyone have any knowledge in this area? It's very important that I know that my Java app will read directly from a selected file on disk (and write to disk when I tell it to), even if I repeat the action over and over again.
    I would appreciate comments/solutions.

    Yes. I've done it both ways, with just the main thread doing all the work (completely write, then read back in), and then with two threads on a RandomAccessFile (one writing a file + one reading right behind it as it is being written)...

  • When updating get a message that reads  the disk could not read or write -

    i downloaded several songs from cd (only some cd do not update )- all loaded up well in i tunes - but when i update - i get a message on the i tunes screen "attempting to copy to the disk david i pod faults - the disk could not read or write- i reinstalled the updated software and i tones software and same problem - only some cd will not update - but they are diffinately in itunes- i can play them on my computer
    nano Windows XP Pro

    Hi daf,
    Try this Your Windows PC doesn't recognize iPod
    Happy New Year
    Colin R.

  • MBP read commercial disks but not its own

    My Mac Book Pro will read commercial disks (DVDs) like movies, books on CD, etc. And it can write disks (DVDs). But lately it cannot read the disks it writes. I tried the disk the MBP wrote on another computer and it read just fine. So I am confused. Why can  it read and write DVDs but not the ones that it writes?
    Any ideas

    Only idea is that your SuperDrive just may not be that "super" any longer. Take the machine to an Apple Store or an AASP and have them run diagnostics on the optical drive. Be sure and take some of the DVDs that you've been able to write but cannot read.
    Good luck,
    Clinton

  • Reading from ABAP memory, not available in call stack

    Hi,
    I need to read a table from ABAP memory. It is not available from the call stack, so I can’t use the standard ‘assign’ approach. The internal table is listed under System areas -> Area ITABS-HEADS with the name \FUNCTION-POOL=MLSP\DATA=IY_ESLL[] 
    Is it even possible to read this table? Seems as though I have to access function-pool MLSP to find it.
    Regards,
    Damian

    Hi,
    The main program of this function pool is SAPLMLSP. If you in any of theses includes can add a small form that returns the content of internal table ( IY_ESLL[]  ) that should solve your problem.
    In the program that need the data, write something like :
    PERFORM Z_GET_MLSP_DATA(SAPLMLSP) using GT_ESLL.
    This form can be created within any sub-include within the SAPLMLSP.
    However, with a quick look at SAPLMLSP does not reveal any user modifiable includes, but I didn't check very carefully.
    If you are on ECC 6.0, there are plenty of enhancement spots, which could be used for this purpose.

  • I can no longer start lightroom and I am receiving this error message " Lightroom encountered an error when reading from it's preview cache and needs to quit. Lightroom will attempt to fix this problem the next time it launches."  But I have restarted my

    I am using a PC also

    Can you try to rename (not delete!) the folder named "YOUR_CATALOG_NAME Previews.lrdata" and restart Lightroom?

  • "lightroom encountered an erorr when reading from it's preview cache and needs to close"

    I can't get rid of this error message.  I have moved/deleted the preview cache..did not help.  I then deleted all the other files in the "Lightroom" folder...doesn't help.  Please help!!  thank you in advance

    Thanks everyone. Just for future people who may read this... Turns out..LR had created another catalog on my C:/ drive that I didn't know about.  (My main catalog is located on a separate drive.) So, when I was doing all of these steps to my main catalog, it didn't work.  Problem was on the C:/ drive.   I still wasted a ton of time talking to support and the person was not knowledgeable.  He/She kept telling me that my catlog was corrupted even though the error message clearly stated it was the preview cache.  All of these software companies need to a) bring their support desks back into this country, b) train the people to actually know the product inside and out.  I've had to contact 3 different companies for support over the past few weeks and all of them gave me useless generic answers that you can find on their websites.  Frustrating.  Sorry for the rant and thanks again everyone.

Maybe you are looking for

  • Error 906 when loading ios 8

    I am downloading IOS 8 and get error 906; Iphone 5

  • Acrobat not printing to default printer.

    From within Acrobat X Standard... or printing from Acrobat embedded in a web page... We tell it to print to the windows default printer and it goes to the Adboe PDF printer... Print to File is NOT selected. A reboot momentarily fixes the problem. Win

  • Talk and surf at the same time

    is verizon going to allow talking and surfing the web if so wheni

  • Hi all, Composition vs Inheritance

    Hi,All which is better Composition or Inheritance in the realtime issues?? Thanks in Advance,

  • Remote connection with Windows OS

    Hi, I work for a company called Zyro Tech. I recently got all the staff a iMac to work with. We're looking for help or the knowledge to answer our question. As all of our staff have iMac's we need a free/cheap piece of software of which we can remote