Weird number of disk-transfers per second when in SYNC mode

Hi, I've managed to configure BDB in synchronous mode (i.e., each put is persisted on disk when committing). However, now I'm doing 2000 puts per seconds, each with payload from 10 to 250 kilobytes, yet I'm getting (from iostat) that each disk-transfer is only about 6 kilobytes (because of 23 megabytes written on disk per second, divided by 3750 transfers per second). How is that even possible? Is there a way of telling BDB to minimize the number of disk-transfers per second in SYNC mode? It seems that BDB is breaking each put's payload into smaller pieces, and only then saving to disk in a bunch of disk-transfers.

Hi,
JE does not split up a single write into multiple writes -- and certainly doesn't do an fsync for each one.
JE may do multiple writes (but not fsyncs) for a single, multi-operation txn if the write buffer fills.  And it will do multiple writes for a single operation, if the record is larger than the write buffer.  However, it doesn't sounds like this (overflowing of the write buffer) is what you're experiencing.  In any case, you can configure the size of the JE write buffer with EnvironmentConfig.LOG_TOTAL_BUFFER_BYTES, LOG_NUM_BUFFERS, and LOG_BUFFER_SIZE.
Another thing is that JE will group fsyncs (this is called "group commit") when multiple threads are committing concurrently with SYNC durability.  In this case you'll see a smaller number of physical writes than the number of commits.
I asked a colleague who has more experience with iostat than I do about this, and he gave me the following information:
We would expect there to be one sync per put on average, assuming the application is doing serial writes and there are no group commits to further obfuscate the issue. Given the high sync write rate, the writes are presumably to an SSD, or spinning rust with a large non-volatile disk write cache
I'm not sure what he means by disk transactions in iostats. Perhaps he means the number of disk transfer requests issued to the device listed as tps (transfers per sec) in iostat output.
If he is using ext3 and he does not have the file system mounted with noatime, he may be observing write requests to update the file system "atime" metadata with each request. So for 2K sync puts/sec he would see roughly 4K (2k put + 2k atime update) write requests/sec and his average write payload would be ~12KB/transfer (the atime write payload is negligible), which would be consistent with the application's put behavior. This is all a guess.
I hope this helps.
--mark

Similar Messages

  • Find number of clock ticks per second in Java

    I'm using JNI to calculate the amount of CPU time my program takes. This is the C code:
    JNIEXPORT jlong JNICALL
    Java_RangeQuery_cpuCount (JNIEnv *env, jobject obj)
            clock_t TTime = clock();
            return (jlong) TTime/CLOCKS_PER_SEC;
    } I call this function two times- first at the start of my program
    startTime = cpuCount();and second time at the end
    endTime = cpuCount();and then subtract the two to get the final time.
    TotalTime = endTime - startTime;But I just found out that its better to subtract the start and end times and then divide by CLOCKS_PER_SEC to get accurate results. Does anyone know how to find number of clock ticks per second in Java? I will be grateful for any help.

    It's not in Java it depends on your operating system.

  • Number of IDOC created per second

    Hi, I am using a middleware (such as Cast Iron and IBM DataStage) to convert external data into IDOC and send to SAP using ALE method. The speed of creating the IDOC in SAP is about 1 IDOC per second, is there any parameter/configuration can be done in SAP to speed up the creation of IDOC? I heard that R/3 will open addtional ALE channel at run time depend on load, can it be configure?
    I am running SAP 4.7 (6.2) with unicode.

    Hi Chee Hean Liew,
    the basic situation is, that one IDOC takes one dialog process in one tRFC.
    Some partner middlewares are certified for sending several IDOCs in one LUW (tRFC) -> several IDOCs take one dialog process.
    You have following possibilities to increase performance:
    in option if you collect IDOCs:
    - merge several IDOCs in one tRFC if partner certified for
    /- merge several IDOcs in one File/
    General:
    - Increase dialog processes - depending on your system   performance
    - Increase dialog process for tRFC (RZ12, RZ04)
    There is a general rule: sum of dialog tRFC must be higher
    then the sum of non-dialog processes.
    Regards
    Tibor

  • Not every photo in album gets transferred to iPhone when I sync

    When I sync the photos from iPhoto onto my iPhone through iTunes, not every photo in the albums are there. Let's say I have a photo library of 500 pictures. They are all distributed into different albums. iPhoto says I have 500 photos total, but after syncing every photo, my iPhone says I have 495. I'm missing five photos. I find which five they are, put them into an album by themselves, and the album shows up in iTunes, but says there are not photos in it. Why can't these photos be read by iTunes and synced to the phone? Some are from the same camera roll that other photos came from, some taken just seconds after others. Is this a known bug or is their something wrong with my photos?

    Try converting one of the photos that you are having problems with to another format.
    Add the photo back to the album and see if the issue still persists.
    you can convert the photo by exporting as a different file format and adding it back into the itunes library.
    Hope this helps.

  • How many times Application.Idle event is generated per second when application is idle?

    Hi,
    I want to implement a function when application is idle for more than 20sec.. Am using Application.Idle for determining application's idle state.. But i don know how to calculate the idle duration.. Can any one provide a sample code?

    E.g.
    namespace WindowsFormsApplication2
    using System;
    using System.Windows.Forms;
    public partial class Form1 : Form
    MessageFilter messageFilter ;
    public Form1()
    InitializeComponent();
    Application.Idle += new EventHandler(this.Application_Idle);
    this.messageFilter = new MessageFilter(this);
    Application.AddMessageFilter(this.messageFilter);
    private void Application_Idle(Object sender, EventArgs e)
    this.timer1.Enabled = true;
    private void timer1_Tick(object sender, EventArgs e)
    this.textBox1.Text += "timer1_Tick";
    public void StopTimer()
    this.timer1.Enabled = false;
    public class MessageFilter : IMessageFilter
    private Form1 owner;
    public MessageFilter(Form1 form)
    this.owner = form;
    public bool PreFilterMessage(ref Message m)
    const int WM_TIMER = 0x113;
    if ( m.Msg != WM_TIMER)
    this.owner.StopTimer();
    return false;

  • Is there a way to prevent apps DLed on my phone from being transferred to iTunes when I sync?

    So here's my question: When I buy an app on my iPhone and sync to my computer, why does it transfer it to locally to my iTunes still, shouldn't it just be backed up in the could?  And shouldn't this app get deleted locally from iTunes when I remove it from my phone?  I just went through and deleted about 10GB of apps that have accumulated over the years from my computer, which weren't on my phone anymore.  Seems like a big waste of space to even backup apps to the computer anymore, how can I prevent this?

    in itunes,  once your device is conected it will appear on the right hand side. click on it and then on the main window you can select at the top, apps, music movies, etc..
    that's where you can customize you sync for that device, by checking unchecking boxes.
    and this is only for that device. plug another and do the same. and another, and another, as many as you want.
    hope it helped

  • GT660 - my Frames Per Second on Gaming

    So I got this MSi GT660 with this Intel Core i7-740QM
    with NVIDIA Geforce GTX 285M 1 GB DDR3 , that 16" HD screen
    RAM with 6 GB  DDR III ....1.7ghz , 3.0ghz on turbo mode
    Hi, I play Counter Strike Source, now I get around 12-16 frames per second when there is a lot of bots or gamers in one , whole lot of action going on (like 8 gamers shooting in one place). It gets the same results of FPS on my 17" 2006 HP model.
    And I get around 40-70 frames per second when I'm roaming alone in a map.
    and 140 frames per second when theres nothing going on.
    I get this low FPS on a turbo mode. Even though Im using "GameBooster" which temporarily disables unnecessary services. ( http://www.iobit.com/gamebooster.html )
    Im looking for ways to boost my FPS in my game. Please help, I bought my notebook from FrostyComputers. They're great but Im not satisfied.
    If you can help me, that will be great. If I'm not providing much information for you to help me, please let me know. Thank you 

    Thanks guys
    There is one time when I backed up my game ( Counter Strike Source ) and burned them into CD.
    Thankfully I did because my laptop crashed when I messed up something and reboot the whole system like new again.
    And my internet is slow, but I only play locally.
    So I re-installed my game using my back up CD. Maybe this is the reason why it so slow in its FPS.
    Also, I found this link ( http://windows7themes.net/speed-up-windows-7.html )
    useful, I could get my notebook to run on Adjust to Performance mode. Plus it takes off the Aero Windows Explorer, I think.
    I was also pondering on the idea about going back to Windows XP just for the gaming, but I like to keep updated to the newest updates.
    I might delete my local game files and re-download Counter Strike Source sometime.
    I think this back up CD caused my FPS go down than normal.
    I appreciate your help. Thanks

  • Queries Per Second

    Is there any why to get the number of queries per second on oracle database.
    more specifically i want result like this
    Number of Select statements per second:
    Number of Insert statements per second:
    Number of Update statements per second:
    Number of Delete statements per second:
    my database is
    SQL> select * from v$version;
    BANNER
    Oracle Database 10g Release 10.2.0.4.0 - 64bit Production
    PL/SQL Release 10.2.0.4.0 - Production
    CORE    10.2.0.4.0      Production
    TNS for Linux: Version 10.2.0.4.0 - Production
    NLSRTL Version 10.2.0.4.0 - Production

    Nimish Garg wrote:
    yes our tech hod is asking, how much execution of queries (basically select) are getting executed on a particular server from a defied website, which use that particular db server.
    he is basically asking select statement execution per second (average). i also believe this is meaning less but if there is any way, plz provide me solution.There is no solution to this ito querying Oracle v$ tables. There are numerous issues - including the same cursor being shared by for example a web session and a job process. There are no means to determine how many time the one has executed the same cursor versus the other. You can look at AWR tables and views - provided you have the appropriate Oracle license too. This will not give you session statistics that you can divide into web sessions versus other sessions. But it will contain some metrics that could be useful in determining the workload of the web app tier.
    The correct approach would be instrumentation. Instrumenting the web app code to record the metrics that are required.
    If you use Oracle Apex, then this is already available. Apex keeps track of click counts, web page performance and so on - allowing you to create a picture of how the web site is used, what the slower pages are and so on.
    Besides instrumentation, there are no real viable and alternative solutions. Yes, you can add a SQL proxy in-between web application and database server - and this proxy server can record the required metrics. But such proxies are few and far in-between, introduces another layer of complexity, will likely have a negative impact on performance, and can introduce security complexities.
    And I'm still not convinced that having an answer to the question posed, will have the slightest benefit. For example, let's say the answer is 10 SQLs/second. What does this mean? Is it good? Is it bad? Does it say anything about potential bottleneck? Does it say anything about performance?
    No, it does not. It is meaningless.
    What is meaningful for example, is looking at the hottest query (SQL) in the Shared Pool. The one that is executed the most. And then determining if this cannot be optimised. Or looking at the Shared Pool for queries that are not using bind variables - and addressing this problem with the developers, fixing their code. Or looking at the queries generating the most I/O and determining if the amount of I/O is justified and warranted.
    I cannot see how knowing the SQL/sec of your web application tier has any meaningful information about workload or performance.

  • When I sync my ipod to add new material, sometimes itunes will automatically rearrange the song order of my pre-existing albums by number of plays. Why does it do this? And is there a way to stop it?

    When I add an album to itunes and subsequently to my ipod, everything is arranged by track number of the album. Sometimes when I sync in order to add new material to my ipod, itunes for some reason automatically rearranges some of my pre-existing material by songs with the greatest number of plays to least (though sometimes it seems to be completely random). When I check itunes on my computer, everything still appears to be in order but the way it appears on the device often is in the previously mentioned disorder. Why does it do this? Is there any setting that I can adjust to make it stop because the only way I've found so far is to delete the rearranged material and re-import the cd and then re-sync. It might sound picky, but I prefer that my music be in order by track number as the artists themselves intended for various reasons the foremost being that I often listen to whole albums from start to finish and this glitch makes such problematic. I have found some settings in preferences that focus on how material is arranged but this seemed to be focused on the actual folders where the music is located on my hard drive and not the way it appears on the ipod. If anyone knows the reason it does this or has suggestions on fixing it, I would be greatly appreciative. Thanks.

    Did the original songs that do not appear on the car player play in the Music app on the iPod? Sometimes glitches happen and they do not. Also, If y ohave a 5G iPod/iOS 7, purchase songs  will show with an cloud icon by them if they are not downloaded if Shall All is turned on in Settings>iTunes and App Store

  • Why does iPhone rate whole album when it syncs to iTunes rather than just single song sometimes?

    I wasn't sure if this should be an iTunes or iPhone discussion, so here goes!
    I am very particular about rating my music.  Every day at work, as songs play on my iPhone, I give them a star rating.  This star rating then transfers to iTunes when I sync my phone.  Most times, these ratings go through just fine.  Sometimes, however, rather than just rating a single song with three stars on an album...  It'll give the whole album in iTunes three stars.  (Three stars is just an example.)
    What I mean is that if viewing an album list, the album rating will be hard coded per se on the left and give all the songs three stars even if I never listened to / rated them.  I can then click to remove the rating on the album on the left, and the unrated / unplayed songs will lose that hard coded rating and return to no rating.
    What am I doing wrong?  Lol.  It drives me crazy!  Once a month I view all my albums as a list so I can remove the hard coded ratings.  There are usually six or seven albums that'll have it.  I do nothing different on the iPhone that I am aware of.
    Has anyone else experienced this situation or have a solution?  I'm on an iPhone 4S, latest software.  This also occurred with my iPhone 3GS
    Chris

    Still an issue, Apple.  iPad with 5.1.1 and I have the same issue.  There doesn't appear to be a way to rate a single song.

  • How can I find the number of megabytes per seconde of mij connection with internet

    In a tuning program is asked the number of MB per second of mij lan-connection with internet.
    I should like to know how I can find that number.

    Hey Tongo,
    This isn't really a Firefox question. I would suggest doing a quick Google search for "Internet Speed Test" or something of that nature. I know a very popular one is located here: http://www.speakeasy.net/speedtest/
    Hopefully this helps!

  • How to see the number of events per second received by MARS

    Hi,
    I have a MARS installed in a client for demonstration porpuse. Is there a way for me to see how many events per second has the MARS received?
    Like in the access-list's logs when even if it can not log due the rate limit it says "missed 20 packets due rate limit".
    So maybe the MARS can not process all the events, but it can say how many events it received per second in avarege.

    go to admin->system maintenance->view log files and look for message rate

  • When i try to turn on my ipod, it tells me to connect to itunes and restore but a message pops up and says that i dont have an internet connection.  the connection is on and it loads at 100mb per second.

    when i try to turn on my ipod, it tells me to connect to itunes and restore but a message pops up and says that i dont have an internet connection.  the connection is on and it loads at 100mb per second.

    Update Server
    Try:
    - Powering off and then back on your router.
    - iTunes for Windows: iTunes cannot contact the iPhone, iPad, or iPod software update server
    - Change the DNS to either Google's or Open DNS servers
    Public DNS — Google Developers
    OpenDNS IP Addresses
    - For one user uninstalling/reinstalling iTunes resolved the problem
    - Try on another computer/network
    - Wait if it is an Apple problem

  • How to set the number of packets to be send per second to the serial port in labview

    hi.
                  i have to send data to serial port such that each packet of data should be send at a rate of 4 packets per second?? how can it be done??
    thanks and regards
    Solved!
    Go to Solution.

    What defines a packet?
    You just need to have a while loop that has a wait timer in it of 250 milliseconds surrounding your VISA write function.

  • I pressed Windows-M to minimize all screens, then Firefox 6.0.1 (Win XP VM) started to open large number ( 70 in a few seconds) of new Firefox windows (stopped only when I killed the Firefox process with Task Manager). Firefox had no focus at that time.

    Windows XP 64-bits Virtual Machine, ServicePack 2, 4MB of RAM, dual processor running on a Windows 7 64-bits host machine, ServicePack 1, 8MB, 8-core processor.
    I have worked with that for half a year, no particular issues.
    I was working in other program in my VM (so Firefox had no focus) , then wanted to view my VM desktop, so I pressed Windows-M to minimize all windows in my VM. Exactly at that time Firefox 6.0 started to issue new empty Firefox windows, at a pace of about 4 or 5 per second. So I killed the firefox.exe process in my TaskManager to prevent my machine of running out of memory. Then I started Firefox again, without further issues so far.

    I'm a Chrome user by choice. I use Firefox for two reasons only:
    1) Speedbit video downloader
    2) A second browser to handle secondary Google and Facebook sign-ins.
    If I remove Speedbit, I lose 50% of my reason to use your browser at all.
    Speedbit and Firefox worked together just fine before version 19.
    PLEASE PROVIDE A PATCH. DON'T BLAME SPEEDBIT.
    Thank you.

Maybe you are looking for